Description
In the Linux kernel, the following vulnerability has been resolved:

keys: Avoid the owner account dereference in named keyring lookup

Named keyring lookup must keep the storage containing the owner UID
alive through the namespace mapping check. find_keyring_by_name()
reads keyring->user->uid under keyring_name_lock, but that lock protects
the keyring's name entry and allocation, not its separate key_user.

A named session-keyring join can overlap a privileged KEYCTL_CHOWN on
another CPU. If the keyring holds the last reference to its old dynamic
key_user and the ownership transfer succeeds, the following ordering is
possible:

Named join Chown
find_keyring_by_name() keyctl_chown_key()
read_lock(keyring_name_lock) down_write(key->sem)
load old keyring->user
replace key->user and key->uid
up_write(key->sem)
key_put(key)
key_user_put(old user): free
read old user->uid
read_unlock(keyring_name_lock)

Chown neither takes keyring_name_lock nor key_session_mutex, so it can
free the old account between the pointer load and the UID read. The
lookup then reads freed memory even though the keyring itself is alive.

Use keyring->uid for the mapping check. key_alloc() initializes this
inline owner UID and keyctl_chown_key() updates it on chown.
The existing name lock keeps its containing keyring allocated throughout
the check, so lookup no longer depends on the account's lifetime. This
also matches the owner UID used by the permission check.

KASAN report as below:

BUG: KASAN: slab-use-after-free in find_keyring_by_name+0x577/0x5d0
Read of size 4 at addr ffff8881128ae2ec by task keycase/500
Published: 2026-11-02
Score: n/a
EPSS: n/a
KEV: No
Impact: Escalation of Privileges / Kernel Code Execution
Action: Immediate Patch
AI Analysis

Impact

An oversight in the Linux kernel’s keyring subsystem can cause a use‑after‑free error when a named keyring is accessed while its owner account is changed on another CPU. The lookup function reads the user’s UID from a stale key_user pointer after that object has been freed, which can lead to a kernel crash or, if an attacker can control the freed memory, arbitrary execution in kernel mode. This flaw enables an attacker with local access to potentially elevate privileges or compromise the kernel.

Affected Systems

All Linux kernel implementations that have not yet incorporated the patch are affected. The CVE description does not list specific kernel releases, indicating that the issue is present in multiple earlier versions across Linux distributions. Any system running the kernel prior to the update that resolves this bug is vulnerable.

Risk and Exploitability

The EPSS score is not available and the vulnerability is not listed in CISA’s KEV catalog, but the nature of a use‑after‑free in kernel code suggests a high CVSS score and a dangerous local attack surface. Exploitation would require an attacker to trigger the race between a named keyring lookup and a privileged KEYCTL_CHOWN operation, a condition that is plausible on multithreaded systems. In the absence of a public exploit, the risk remains theoretical yet significant because of the kernel’s privileged execution context.

Generated by OpenCVE AI on November 2, 2026 at 18:08 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel patch that fixes the keyring use‑after‑free bug.
  • Reboot the system after applying the patch to ensure all kernel instances use the updated code.
  • If a patch is unavailable, audit and restrict the use of the keyctl_chown system call by adjusting file system permissions or disabling the keyrings feature until the fix is deployed.

Generated by OpenCVE AI on November 2, 2026 at 18:08 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 02 Nov 2026 20:30:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Mon, 02 Nov 2026 18:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-416

Mon, 02 Nov 2026 16:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: keys: Avoid the owner account dereference in named keyring lookup Named keyring lookup must keep the storage containing the owner UID alive through the namespace mapping check. find_keyring_by_name() reads keyring->user->uid under keyring_name_lock, but that lock protects the keyring's name entry and allocation, not its separate key_user. A named session-keyring join can overlap a privileged KEYCTL_CHOWN on another CPU. If the keyring holds the last reference to its old dynamic key_user and the ownership transfer succeeds, the following ordering is possible: Named join Chown find_keyring_by_name() keyctl_chown_key() read_lock(keyring_name_lock) down_write(key->sem) load old keyring->user replace key->user and key->uid up_write(key->sem) key_put(key) key_user_put(old user): free read old user->uid read_unlock(keyring_name_lock) Chown neither takes keyring_name_lock nor key_session_mutex, so it can free the old account between the pointer load and the UID read. The lookup then reads freed memory even though the keyring itself is alive. Use keyring->uid for the mapping check. key_alloc() initializes this inline owner UID and keyctl_chown_key() updates it on chown. The existing name lock keeps its containing keyring allocated throughout the check, so lookup no longer depends on the account's lifetime. This also matches the owner UID used by the permission check. KASAN report as below: BUG: KASAN: slab-use-after-free in find_keyring_by_name+0x577/0x5d0 Read of size 4 at addr ffff8881128ae2ec by task keycase/500
Title keys: Avoid the owner account dereference in named keyring lookup
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-11-02T16:06:35.362Z

Reserved: 2026-09-25T10:25:14.402Z

Link: CVE-2026-99226

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-02T16:17:47.233

Modified: 2026-11-02T16:17:47.233

Link: CVE-2026-99226

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-02T20:15:15Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

  • CWE-416

    Use After Free