Register for the AI for Security Summit: Join Figma, Perplexity & Wiz

CVE-2026-89762
Linux Debian vulnerability analysis and mitigation

Overview

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).

Technical details

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).

Impact

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).

Exploitability

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.

Exploitation steps

  1. Gain local access: Obtain a low-privileged shell on a Linux system running a kernel between 2.6.36 and the patched versions, with AppArmor enabled and at least one active profile assigned to a process.
  2. Identify a target process: Find or spawn a process that is confined by an AppArmor profile and is blocked in a long-running syscall (e.g., splice() reading from a FUSE passthrough file into a full pipe).
  3. Trigger a profile update: Use 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.
  4. Race credential replacement with 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.
  5. Trigger UAF: AppArmor drops two references on the original 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.
  6. Achieve kernel code execution: Exploit the UAF condition using heap-spray or other kernel exploitation primitives to control the freed struct cred memory and redirect execution flow to attain kernel-level privileges (Github Advisory, Red Hat Bugzilla).

Indicators of compromise

  • Logs: Kernel KASAN (Kernel Address Sanitizer) reports referencing begin_current_label_crit_section, aa_replace_current_label, or struct cred UAF in /var/log/kern.log or dmesg output.
  • Logs: Kernel oops or BUG messages involving apparmor subsystem functions during or after AppArmor profile updates (aa-disable, apparmor_parser).
  • Process: Unexpected privilege escalation by a process previously confined under an AppArmor profile, particularly following a profile reload or disable event.
  • Process: Processes spawning privileged child processes (e.g., bash, sh) from contexts that should be AppArmor-confined.
  • File System: Unexpected modifications to /etc/apparmor.d/ or AppArmor profile files coinciding with suspicious process behavior.

Mitigation and workarounds

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.

Community reactions

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.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

linux

Affected

sid

linux: 7.2.6-1

Fixed

trixie

linux

Affected

Ubuntu

Affected

bionic (esm-infra)

linux

Affected

bionic (fips-updates)

linux-fips

Affected

bionic (fips)

linux-fips

Affected

devel

linux: 7.3.0-5.5

Affected

focal

linux-azure-fde-5.15

Not Affected

focal (esm-infra)

linux

Affected

focal (fips-updates)

linux-fips

Affected

focal (fips)

linux-fips

Affected

RHEL / CentOS

Affected

OpenShift

Not Affected

RHEL 8

Not Affected

RHEL 9

Not Affected

RHEL 10

Not Affected

SourceThis report was generated using AI

Related Linux Debian vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-93574MEDIUM6.5
  • Linux Debian logoLinux Debian
  • netty
NoNoSep 18, 2026
CVE-2026-93562MEDIUM6.5
  • Linux Debian logoLinux Debian
  • netty
NoNoSep 18, 2026
CVE-2026-93894LOW2.3
  • Linux Debian logoLinux Debian
  • varnish
NoNoSep 18, 2026
CVE-2026-82560NONEN/A
  • Linux Debian logoLinux Debian
  • perl
NoNoSep 19, 2026
CVE-2026-78030NONEN/A
  • Linux Debian logoLinux Debian
  • perl-DBI
NoYesSep 19, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management