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

alloc_tag: fix use-after-free in /proc/allocinfo after module unload

allocinfo_start() only reinitializes the codetag iterator at position 0.
For subsequent reads (position > 0), it reuses cached iterator state from
the previous batch. allocinfo_stop() drops mod_lock between read batches,
which allows module unload to complete and free the module memory that the
cached iterator still references:

CPU0 (read) CPU1 (rmmod)
---- ----
allocinfo_start(pos=0)
down_read(mod_lock)
allocinfo_show()
...
allocinfo_stop()
up_read(mod_lock)
codetag_unload_module()
kfree(cmod)
release_module_tags()
...
free_mod_mem()
allocinfo_start(pos=N)
down_read(mod_lock)
// reuses cached iter, skips re-init
allocinfo_show()
ct->filename <-- UAF

After free_mod_mem() frees the module's .rodata, allocinfo_show()
dereferences ct->filename, ct->function which point there.

Save the iterator state in allocinfo_next() and resume from it in
allocinfo_start() with codetag_next_ct(), which detects module removal via
idr_find() returning NULL and skips to the next module.
Published: 2026-08-15
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel contains a use‑after‑free bug in the /proc/allocinfo interface that becomes exploitable when a module is unloaded while a reader is iterating over allocation tags. The iterator state is cached between reads and, after the module’s memory is freed, the reader dereferences pointers that no longer point to valid memory. This corrupted memory can lead to arbitrary code execution or system compromise.

Affected Systems

All Linux kernel releases that have not yet incorporated this patch are potentially affected. The vulnerability was fixed in the kernel source by correcting the iterator state handling during module unload. No specific version numbers are listed in the CNA data, so any kernel version before the patch commits is considered vulnerable.

Risk and Exploitability

The CVSS score is not provided, and there is no EPSS data, so the exact severity cannot be quantified from the available metrics. The vulnerability is listed as not in the CISA KEV catalog. The likely attack vector is local: an attacker with the ability to read /proc/allocinfo and to unload kernel modules (e.g., root or privileged users) could trigger the use‑after‑free. Successful exploitation would allow the attacker to execute arbitrary code in kernel mode, effectively achieving full system compromise.

Generated by OpenCVE AI on August 15, 2026 at 11:49 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the kernel to a version that includes the patch for CVE-2026-72431.
  • If a kernel update cannot be applied immediately, temporarily disable or restrict access to /proc/allocinfo while kernel modules may be unloaded, or avoid performing rmmod operations concurrently with allocations file reads.
  • For environments where module unloading is not required, consider disabling the unload functionality (e.g., set appropriate kernel module parameters) to eliminate the race condition until a patch is applied.

Generated by OpenCVE AI on August 15, 2026 at 11:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 15 Aug 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: alloc_tag: fix use-after-free in /proc/allocinfo after module unload allocinfo_start() only reinitializes the codetag iterator at position 0. For subsequent reads (position > 0), it reuses cached iterator state from the previous batch. allocinfo_stop() drops mod_lock between read batches, which allows module unload to complete and free the module memory that the cached iterator still references: CPU0 (read) CPU1 (rmmod) ---- ---- allocinfo_start(pos=0) down_read(mod_lock) allocinfo_show() ... allocinfo_stop() up_read(mod_lock) codetag_unload_module() kfree(cmod) release_module_tags() ... free_mod_mem() allocinfo_start(pos=N) down_read(mod_lock) // reuses cached iter, skips re-init allocinfo_show() ct->filename <-- UAF After free_mod_mem() frees the module's .rodata, allocinfo_show() dereferences ct->filename, ct->function which point there. Save the iterator state in allocinfo_next() and resume from it in allocinfo_start() with codetag_next_ct(), which detects module removal via idr_find() returning NULL and skips to the next module.
Title alloc_tag: fix use-after-free in /proc/allocinfo after module unload
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-08-15T05:56:46.821Z

Reserved: 2026-08-09T03:40:39.929Z

Link: CVE-2026-72431

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:16.960

Modified: 2026-08-15T06:22:16.960

Link: CVE-2026-72431

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T12:00:05Z

Weaknesses