Cloudanix VulnDB

CVE-2026-46055

High · 7.1

CVSS

7.1

EPSS

0.2%

Published

May 27, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

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

  1. Gain local execution on an affected Linux system as an unprivileged or low-privileged user/process.
  2. Identify that AppArmor is enabled and that mount mediation is active for the process context or profile being targeted.
  3. Trigger mount or bind-mount handling through a permitted local code path, helper, namespace operation, container runtime path, or confined application behavior.
  4. Craft mount-related path input that reaches AppArmor string matching without the expected null termination.
  5. Cause AppArmor's aa_dfa_match() logic to read past the end of the allocated kernel buffer.
  6. 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