HIGH Introduced in 6.7
apparmor ChangeProfile Bypass
CVE-2026-90231
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
KernelScan AI7.7HIGH
01Description
In the Linux kernel, the following vulnerability has been resolved: apparmor: fix unconfined user namespace restriction forced stack If a task is already confined by a stack the unprivileged transition restriction on unconfined is not correctly, applied. This results in an escape if two transitions through an unconfined profile can be executed. Fix this by pushing the check into the per profile label build. The check will always be done against unconfined and result in a stack of just the unconfined component when necessary.
02KernelScan AI Analysis
Risk summary
An unprivileged local user can bypass AppArmor's unprivileged unconfined restriction by performing two profile transitions through an unconfined profile when already confined by a stack. This allows escaping admin-set MAC policy on systems where AppArmor is enforcing and the unprivileged unconfined restriction sysctl is enabled. The impact is full confidentiality, integrity, and availability compromise of resources that AppArmor was meant to protect.
Vulnerability analysis
AppArmor normally prevents unprivileged unconfined tasks from performing one-way profile transitions, forcing them to stack instead so they cannot bypass admin-set policy. When a task was already confined by a stack of profiles, the original code only checked this restriction at the outermost level, missing an unconfined component buried inside the stack. An unprivileged user could exploit this by performing two transitions through an unconfined profile to bypass the restriction entirely. The fix now checks each profile individually when building the confinement label, so any unconfined component inside a stack is properly restricted. This vulnerability is reachable by any unprivileged local user on systems where AppArmor is enabled and the unprivileged unconfined restriction is active.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.12 | 6.7 | 6.12.114 | fdd341654471 |
| 6.18 | 6.7 | 6.18.52 | 7d1099b86356 |
| 7.2 | 6.7 | 7.2.6 | 7da0bdf0610f |
| mainline | 6.7 | 7.3 | 08c2f7c8d4b1 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Affected — no CIP fix yet (latest 6.12.112-cip33) |