
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-89762 is a use-after-free (UAF) vulnerability in the Linux kernel's AppArmor security module, specifically in the begin_current_label_crit_section() function. The flaw allows a local attacker with low privileges to trigger kernel memory corruption through routine file and socket operations, potentially leading to arbitrary code execution with kernel privileges. It affects the Linux kernel from version 2.6.36 onward, with fixes available in versions 6.12.109, 6.18.50, 7.2.4, and 7.3-rc1. The vulnerability was published on September 11, 2026, and carries a CVSS v3.1 base score of 7.8 (High) (Github Advisory, Red Hat Bugzilla).
The root cause is classified as CWE-825 (Expired Pointer Dereference). begin_current_label_crit_section() is invoked from numerous LSM hooks (VFS and socket-related) and checks whether the label in the current credentials is marked FLAG_STALE; if so, it calls aa_replace_current_label() to swap in updated credentials. Two distinct problems exist: first, any kernel code that caches a pointer to current_cred() before a security hook invocation and dereferences it afterward can encounter a freed struct cred; second, the guard current_cred() != current_real_cred() used to detect overridden credentials is unreliable because overridden creds can equal the objective creds. In the documented race scenario, AppArmor drops two references on the original credential object while a revert_creds() call still expects one of those references to be valid, causing task->real_cred to point to freed memory and making any subsequent current_cred() access a UAF. The fix defers credential replacement to a task_work callback that runs at syscall exit rather than inline within the LSM hook (Github Advisory, Red Hat Bugzilla).
Successful exploitation gives a local, low-privileged user the ability to corrupt kernel memory via a use-after-free condition in struct cred, with high impact to confidentiality, integrity, and availability. An attacker who achieves arbitrary kernel code execution can bypass all security boundaries on the host, escalate to root, disable security controls such as AppArmor itself, and potentially pivot to other workloads sharing the same kernel (e.g., containers). The vulnerability is confirmed to be triggerable through normal system calls such as splice() combined with AppArmor profile updates, as demonstrated by a KASAN UAF splat on a subsequent getuid() call (Github Advisory, Red Hat Bugzilla).
As of the publication date, there is no public proof-of-concept exploit and no evidence of in-the-wild exploitation (Github Advisory). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. The EPSS score is approximately 0.156% (roughly the 2nd percentile), indicating a low near-term exploitation probability. Exploitation requires local access and low privileges, but the attack complexity is rated Low because no special configuration beyond a running AppArmor profile is needed.
splice() reading from a FUSE passthrough file into a full pipe).aa-disable or modify the AppArmor policy to mark the label associated with the target process as FLAG_STALE, causing begin_current_label_crit_section() to attempt a credential replacement on the next LSM hook invocation.override_creds(): Arrange for the target process (or a cooperating thread) to call override_creds() so that the objective and subjective credential pointers are equal at the moment AppArmor's check runs, bypassing the current_cred() != current_real_cred() guard.struct cred while revert_creds() still holds an expectation of one; the refcount reaches zero and the memory is freed. A subsequent current_cred() access (e.g., getuid()) dereferences freed memory.struct cred memory and redirect execution flow to attain kernel-level privileges (Github Advisory, Red Hat Bugzilla).begin_current_label_crit_section, aa_replace_current_label, or struct cred UAF in /var/log/kern.log or dmesg output.apparmor subsystem functions during or after AppArmor profile updates (aa-disable, apparmor_parser).bash, sh) from contexts that should be AppArmor-confined./etc/apparmor.d/ or AppArmor profile files coinciding with suspicious process behavior.Apply the upstream kernel patches corresponding to the fixed commits: 361488984d66, 587a6a92b93e, 580f777d6d9f, and 3f4ae5fab613, which are included in kernel versions 6.12.109, 6.18.50, 7.2.4, and 7.3-rc1 (Github Advisory). Red Hat has tracked this issue in Bugzilla (Bug 2532435) and users of RHEL-based distributions should monitor vendor advisories for backported fixes (Red Hat Bugzilla). As a temporary workaround until patching is possible, restrict local user access to minimize the attack surface, avoid frequent AppArmor profile reloads or disables on production systems, and monitor for kernel memory corruption indicators in dmesg.
The vulnerability was noted on Mastodon by security community accounts shortly after disclosure. Red Hat's Product Security team opened a tracking bug and assigned it medium severity, with 17 engineers on the CC list, indicating active internal triage. No major vendor blog posts or dedicated security researcher write-ups have been published beyond the standard advisory channels as of the available data.
Fix availability across major Linux distributions and their releases.
bionic (esm-infra)
linux
bionic (fips-updates)
linux-fips
bionic (fips)
linux-fips
devel
linux: 7.3.0-5.5
focal
linux-azure-fde-5.15
focal (esm-infra)
linux
focal (fips-updates)
linux-fips
focal (fips)
linux-fips
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."