CVE-2026-46055
High · 7.1CVSS
7.1
EPSS
0.2%
Published
May 27, 2026
CISA due date
—
Cloudanix analysis
A local user or program may be able to make affected Linux systems crash or expose sensitive system memory when AppArmor checks certain mount operations.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
This flaw is a local Linux kernel memory-safety issue in AppArmor mount mediation. A missing string terminator can cause AppArmor's DFA matching logic, specifically aa_dfa_match(), to read beyond the end of an allocated kernel buffer while processing mount-related paths. The observed failure is a slab out-of-bounds read in the AppArmor mount path matching path, triggered during mount handling. Depending on kernel configuration and runtime conditions, the impact may include kernel information disclosure through out-of-bounds reads and system instability or denial of service if the fault is detected by memory sanitizers or results in a kernel crash. The CVSS vector indicates local access, low attack complexity, low privileges required, no user interaction, high confidentiality impact, and high availability impact, with no direct integrity impact.
Why it matters to the business
An attacker or compromised local user/process with the ability to exercise mount operations could potentially crash affected Linux systems or expose sensitive kernel memory. This is most relevant to servers, workstations, container hosts, and endpoint systems that rely on AppArmor for mandatory access control, particularly distributions or configurations where AppArmor mount mediation is enabled. Although the vulnerability is not currently listed in CISA KEV, has no known exploit maturity, and has a low EPSS score, kernel flaws can have high operational consequences because successful exploitation may affect the stability and confidentiality of the entire host.
How an attack unfolds
An attacker first obtains local code execution with low privileges on an affected Linux system. They then trigger AppArmor's mount mediation path by causing a mount or bind-mount operation to be evaluated under an AppArmor profile. By supplying mount-related path data that reaches the vulnerable string handling path without proper termination, the kernel's AppArmor DFA matcher reads one byte or more beyond the allocated buffer boundary. In hardened or instrumented kernels this may generate a KASAN slab-out-of-bounds report; in production kernels the outcome may be silent memory disclosure, a kernel fault, or system instability. There is no indication from the provided data that this vulnerability is remotely exploitable, used in ransomware, or currently exploited by named threat actors.
How to fix it
Apply the vendor-provided Linux kernel update that includes the AppArmor fix for the missing string termination issue. Because no exact fixed kernel versions were provided in the input, use distribution advisories and package metadata for the authoritative patched version for each affected platform. Prioritize systems where AppArmor is enabled, untrusted local users are present, container workloads can perform namespace or mount-related operations, or local privilege boundaries are security-critical. If immediate patching is not possible, reduce exposure by limiting local shell access, restricting untrusted workloads, tightening container runtime privileges, disabling unnecessary mount capabilities, avoiding privileged containers, and reviewing AppArmor profiles that permit mount operations. Disabling AppArmor may avoid the vulnerable code path but is generally not recommended because it removes an important security control; prefer patching or reducing mount-related privileges instead.
How to confirm the fix worked
Confirm that affected systems are running a kernel build from the operating system vendor that contains the AppArmor string termination fix. Validate package status with distribution-specific tooling such as uname -a, package manager changelogs, vendor advisory references, and kernel package version checks. Confirm AppArmor status with apparmor_status or equivalent tools and identify whether mount rules are used in active profiles. After remediation, reproduce benign mount or namespace workflows that previously exercised AppArmor mount mediation and verify that no kernel warnings, KASAN reports, oopses, or AppArmor-related mount matching errors appear in dmesg, journalctl -k, or /var/log/kern.log. For high-assurance validation, test patched kernels in staging with representative container, snap, namespace, and bind-mount workloads.
Typical attack path
- Gain local execution on an affected Linux system as an unprivileged or low-privileged user/process.
- Identify that AppArmor is enabled and that mount mediation is active for the process context or profile being targeted.
- Trigger mount or bind-mount handling through a permitted local code path, helper, namespace operation, container runtime path, or confined application behavior.
- Craft mount-related path input that reaches AppArmor string matching without the expected null termination.
- Cause AppArmor's aa_dfa_match() logic to read past the end of the allocated kernel buffer.
- Leverage the resulting behavior for kernel memory disclosure or denial of service, depending on system configuration and exploit reliability.
How to detect it
To determine whether the vulnerability may already have been triggered, review kernel logs and system journals for AppArmor mount mediation crashes, KASAN slab out-of-bounds reports, kernel oopses, or panics referencing aa_dfa_match, match_mnt_path_str, aa_bind_mount, apparmor_sb_mount, or security_sb_mount. Useful sources include dmesg output, journalctl -k, /var/log/kern.log, /var/log/syslog, crash dumps, kdump/vmcore artifacts, and endpoint telemetry that records kernel panic or process crash context. Pay attention to events involving local processes that perform mount or namespace operations, including snap-update-ns, container runtimes, sandboxing tools, package lifecycle helpers, or processes running under AppArmor confinement. There are no known threat actors or public exploitation campaigns in the provided data, so detection should focus on behavioral evidence of the vulnerable code path being exercised rather than known attacker infrastructure.
- BUG: KASAN: slab-out-of-bounds in aa_dfa_match
- Read of size 1 at addr
- aa_dfa_match
- match_mnt_path_str
- match_mnt
- aa_bind_mount
- apparmor_sb_mount
- security_sb_mount
- path_mount
- __arm64_sys_mount
- aa_get_buffer
- snap-update-ns
- kasan: bad access detected
- kmalloc-rnd-06-8k
- slab-out-of-bounds
- AppArmor
- apparmor
What your security team should do
- Inventory Linux systems using AppArmor, especially Ubuntu and other distributions with AppArmor enabled by default.
- Prioritize patching systems that allow local interactive users, run multi-tenant workloads, host containers, or execute untrusted code.
- Track distribution advisories for the exact fixed kernel package versions and deploy the patched kernel through normal kernel update channels.
- Reboot systems after kernel update installation so the fixed kernel is actually running.
- Review container and workload configurations for unnecessary mount, bind-mount, namespace, SYS_ADMIN, or privileged-container capabilities.
- Monitor kernel logs for AppArmor, KASAN, slab out-of-bounds, or aa_dfa_match crash signatures as possible exploitation or probing evidence.
- Do not rely on the low EPSS score alone to defer remediation on high-value or multi-user Linux systems, because the vulnerability has high confidentiality and availability impact if exploited locally.
The record
In the Linux kernel, the following vulnerability has been resolved: apparmor: Fix string overrun due to missing termination When booting Ubuntu 26.04 with Linux 7.0-rc4 on an ARM64 Qualcomm Snapdragon X1 we see a string buffer overrun: BUG: KASAN: slab-out-of-bounds in aa_dfa_match (security/apparmor/match.c:535) Read of size 1 at addr ffff0008901cc000 by task snap-update-ns/2120 CPU: 5 UID: 60578 PID: 2120 Comm: snap-update-ns Not tainted 7.0.0-rc4+ #22 PREEMPTLAZY Hardware name: LENOVO 83ED/LNVNB161216, BIOS NHCN60WW 09/11/2025 Call trace: show_stack (arch/arm64/kernel/stacktrace.c:501) (C) dump_stack_lvl (lib/dump_stack.c:122) print_report (mm/kasan/report.c:379 mm/kasan/report.c:482) kasan_report (mm/kasan/report.c:597) __asan_report_load1_noabort (mm/kasan/report_generic.c:378) aa_dfa_match (security/apparmor/match.c:535) match_mnt_path_str (security/apparmor/mount.c:244 security/apparmor/mount.c:336) match_mnt (security/apparmor/mount.c:371) aa_bind_mount (security/apparmor/mount.c:447 (discriminator 4)) apparmor_sb_mount (security/apparmor/lsm.c:719 (discriminator 1)) security_sb_mount (security/security.c:1062 (discriminator 31)) path_mount (fs/namespace.c:4101) __arm64_sys_mount (fs/namespace.c:4172 fs/namespace.c:4361 fs/namespace.c:4338 fs/namespace.c:4338) invoke_syscall.constprop.0 (arch/arm64/kernel/syscall.c:35 arch/arm64/kernel/syscall.c:49) el0_svc_common.constprop.0 (./include/linux/thread_info.h:142 (discriminator 2) arch/arm64/kernel/syscall.c:140 (discriminator 2)) do_el0_svc (arch/arm64/kernel/syscall.c:152) el0_svc (arch/arm64/kernel/entry-common.c:80 arch/arm64/kernel/entry-common.c:725) el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:744) el0t_64_sync (arch/arm64/kernel/entry.S:596) Allocated by task 2120: kasan_save_stack (mm/kasan/common.c:58) kasan_save_track (./arch/arm64/include/asm/current.h:19 mm/kasan/common.c:70 mm/kasan/common.c:79) kasan_save_alloc_info (mm/kasan/generic.c:571) __kasan_kmalloc (mm/kasan/common.c:419) __kmalloc_noprof (./include/linux/kasan.h:263 mm/slub.c:5260 mm/slub.c:5272) aa_get_buffer (security/apparmor/lsm.c:2201) aa_bind_mount (security/apparmor/mount.c:442) apparmor_sb_mount (security/apparmor/lsm.c:719 (discriminator 1)) security_sb_mount (security/security.c:1062 (discriminator 31)) path_mount (fs/namespace.c:4101) __arm64_sys_mount (fs/namespace.c:4172 fs/namespace.c:4361 fs/namespace.c:4338 fs/namespace.c:4338) invoke_syscall.constprop.0 (arch/arm64/kernel/syscall.c:35 arch/arm64/kernel/syscall.c:49) el0_svc_common.constprop.0 (./include/linux/thread_info.h:142 (discriminator 2) arch/arm64/kernel/syscall.c:140 (discriminator 2)) do_el0_svc (arch/arm64/kernel/syscall.c:152) el0_svc (arch/arm64/kernel/entry-common.c:80 arch/arm64/kernel/entry-common.c:725) el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:744) el0t_64_sync (arch/arm64/kernel/entry.S:596) The buggy address belongs to the object at ffff0008901ca000 which belongs to the cache kmalloc-rnd-06-8k of size 8192 The buggy address is located 0 bytes to the right of allocated 8192-byte region [ffff0008901ca000, ffff0008901cc000) The buggy address belongs to the physical page: page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x9101c8 head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:-1 pincount:0 flags: 0x8000000000000040(head|zone=2) page_type: f5(slab) raw: 8000000000000040 ffff000800016c40 fffffdffe2d14e10 ffff000800015c70 raw: 0000000000000000 0000000800010001 00000000f5000000 0000000000000000 head: 8000000000000040 ffff000800016c40 fffffdffe2d14e10 ffff000800015c70 head: 0000000000000000 0000000800010001 00000000f5000000 0000000000000000 head: 8000000000000003 fffffdffe2407201 fffffdffffffffff 00000000ffffffff head: ffffffffffffffff 0000000000000000 00000000ffffffff 0000000000000008 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff0008901cbf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff0008 ---truncated---
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| openSUSE:Tumbleweed | kernel-source | 0 | 7.0.11-1.1 |
Related vulnerabilities
- CVE-2026-53354 In the Linux kernel, the following vulnerability has been resolved: arm64: errata… Also affects kernel-source
- CVE-2026-53325 In the Linux kernel, the following vulnerability has been resolved: agp/amd64: Fix broken… Also affects kernel-source
- CVE-2026-52946 In the Linux kernel, the following vulnerability has been resolved: fs/fcntl: fix… Also affects kernel-source
- CVE-2026-52907 In the Linux kernel, the following vulnerability has been resolved: media: rockchip… Also affects kernel-source
- CVE-2026-52906 In the Linux kernel, the following vulnerability has been resolved: 9p: fix access mode… Also affects kernel-source
- CVE-2026-52905 In the Linux kernel, the following vulnerability has been resolved: mm/damon/core… Also affects kernel-source
- CVE-2026-52904 In the Linux kernel, the following vulnerability has been resolved: drm/nouveau: fix… Also affects kernel-source
- CVE-2026-46332 In the Linux kernel, the following vulnerability has been resolved: greybus… Also affects kernel-source