CVE Catalog

CVE-2026-93106

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel, restore_dm_crypt_keys_to_thread_keyring() gets a reference to the user keyring before restoring saved dm-crypt keys. The same reference is passed to add_key_to_keyring() for each key, but that function drops the reference on every call. With multiple keys, the reference is dropped too many times, potentially triggering a refcount underflow or use-after-free. With more than five keys restored, a warning can be triggered.

Risk Assessment

Refcount underflow or use-after-free can lead to kernel crashes or potential privilege escalation by a local attacker.

Recommendation

Update the Linux kernel to a version containing the fix. Avoid restoring multiple dm-crypt keys simultaneously until patched.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: crash_dump: release keyring reference at the correct time restore_dm_crypt_keys_to_thread_keyring() gets a reference to the user keyring before restoring the saved dm-crypt keys. The same keyring reference is then passed to add_key_to_keyring() for each saved key, but add_key_to_keyring() drops that reference on every call. This is only balanced when exactly one key is restored. With multiple keys, the keyring reference is dropped too many times and may trigger a refcount underflow or use-after-free. When more than five keys are restored, a refcount underflow/use-after-free warning can be triggered. The early error paths after lookup_user_key() also return without dropping the keyring reference. Keep ownership of the keyring reference in restore_dm_crypt_keys_to_thread_keyring(), drop it once on all exit paths, and make add_key_to_keyring() only use the reference without consuming it.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS