Description
In the Linux kernel, the following vulnerability has been resolved:

apparmor: avoid per-cpu hold underflow in aa_get_buffer

When aa_get_buffer() pulls from the per-cpu list it unconditionally
decrements cache->hold. If hold reaches 0 while count is still non-zero,
the unsigned decrement wraps to UINT_MAX. This keeps hold non-zero for a
very long time, so aa_put_buffer() never returns buffers to the global
list, which can starve other CPUs and force repeated kmalloc(aa_g_path_max)
allocations.

Guard the decrement so hold never underflows.
Published: 2026-05-27
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel, the function aa_get_buffer() prematurely decrements a per‑CPU hold counter without checking for underflow. If the counter reaches zero while a buffer remains counted, it wraps to a very large value and the buffer is never returned to the global list. The buffer starvation prevents other CPUs from reclaiming memory and forces repeated kmalloc(aa_g_path_max) allocations, ultimately exhausting memory resources. The weakness manifests as an integer underflow (CWE‑189) and results in a denial‑of‑service condition where the system becomes unresponsive due to lack of available buffers.

Affected Systems

All Linux kernel releases are potentially affected, as the vulnerability originates from the apparmor subsystem within the kernel source tree. The fix is applied to all kernel versions that include the patch referenced in the advisory. Linux distribution maintainers who use kernels without the guard will be susceptible to the buffer starvation issue.

Risk and Exploitability

The vulnerability is local to the system; it requires execution of code that invokes aa_get_buffer(), which typically occurs during normal kernel operations for any user process interacting with AppArmor profiles. Because the flaw is an internal kernel bug rather than an externally exposed interface, the attack vector is inferred to be local privilege or any user with kernel execution rights. No EPSS score is available, and the issue is not listed in CISA’s KEV catalog, suggesting limited public exploitation data. However, the impact of memory exhaustion and the absence of a countermeasure in vulnerable kernels elevate the risk, especially in environments with heavy AppArmor usage.

Generated by OpenCVE AI on May 27, 2026 at 16:45 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that incorporates the aa_get_buffer() fix that guards the hold counter decrement.
  • If an immediate kernel update is infeasible, monitor system memory usage and the frequency of kmalloc(aa_g_path_max) calls; consider temporarily disabling AppArmor profiles that heavily use aa_get_buffer() until the kernel can be updated.
  • Ensure that downstream distributions release their patched kernels promptly by checking vendor update channels for security advisories related to AppArmor and kernel memory management.

Generated by OpenCVE AI on May 27, 2026 at 16:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 27 May 2026 17:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-189
CWE-399

Wed, 27 May 2026 14:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: apparmor: avoid per-cpu hold underflow in aa_get_buffer When aa_get_buffer() pulls from the per-cpu list it unconditionally decrements cache->hold. If hold reaches 0 while count is still non-zero, the unsigned decrement wraps to UINT_MAX. This keeps hold non-zero for a very long time, so aa_put_buffer() never returns buffers to the global list, which can starve other CPUs and force repeated kmalloc(aa_g_path_max) allocations. Guard the decrement so hold never underflows.
Title apparmor: avoid per-cpu hold underflow in aa_get_buffer
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-05-27T12:16:56.542Z

Reserved: 2026-05-13T15:03:33.082Z

Link: CVE-2026-45884

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-05-27T14:17:02.290

Modified: 2026-05-27T14:48:31.480

Link: CVE-2026-45884

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-27T18:45:39Z

Weaknesses