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

mm/page_owner: use memcg_data snapshot to avoid TOCTOU in print_page_owner_memcg()

print_page_owner_memcg() reads page->memcg_data via READ_ONCE() at the
start to guard against tail pages and NULL data. However, it later
re-reads page->memcg_data locklessly in two places:

1: page_memcg_check(page)

2: PageMemcgKmem(page) (via folio_memcg_kmem(), which includes
VM_BUG_ON assertions for tail pages and MEMCG_DATA_OBJEXTS)

If the page is concurrently freed and reallocated as a THP tail page or
slab page between these calls, the VM_BUG_ON assertions can trigger on
CONFIG_DEBUG_VM=y builds, crashing the kernel.

Fix both TOCTOU issues by using the memcg_data snapshot throughout.
Published: 2026-09-24
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Apply Patch
AI Analysis

Impact

The kernel function print_page_owner_memcg() reads the page->memcg_data field twice, first with a safe READ_ONCE() and then again without any locking. If a concurrently running thread frees or reallocates the page as a tail page or slab page between these reads, the second unsynchronized access can trigger VM_BUG_ON assertions in CONFIG_DEBUG_VM builds, causing the kernel to crash. The crash manifests as a kernel panic, leading the system to reboot or become unresponsive, which is effectively a denial of service for any user-space applications or services on the host.

Affected Systems

All Linux kernel releases that compile the mm/page_owner subsystem are affected. The vulnerability exists in every build that contains print_page_owner_memcg(); however, a crash is only triggered on builds with CONFIG_DEBUG_VM=y, a configuration typically used for kernel debugging. The impact is present in both production and testing kernels if they exercise page free and reallocation paths that reach the unsynchronized read.

Risk and Exploitability

The EPSS score is listed as < 1%, indicating a low probability of exploitation at this time, and the vulnerability is not included in CISA’s KEV catalog. Based on the description, it is inferred that the attack requires direct manipulation of kernel memory management, meaning the attacker must run privileged code or obtain kernel‑level control. The likelihood of a practical exploit is therefore limited to local attackers with sufficient privileges; remote exploitation is not feasible without additional kernel vulnerabilities. The absence of a CVSS score in the data does not detract from the high impact of a kernel panic, which would cause immediate denial of service. The fix replaces the second non‑synchronized read with a consistent memcg_data snapshot, eliminating the race condition.

Generated by OpenCVE AI on September 26, 2026 at 01:49 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the kernel to a version that includes the patch for print_page_owner_memcg() provided by the referenced commits; the fix replaces the unsynchronized read with a memcg_data snapshot.
  • Rebuild or install a kernel with CONFIG_DEBUG_VM disabled as a temporary mitigation; disabling the debug VM option prevents VM_BUG_ON assertions from crashing the system.
  • If you must use a debug kernel, apply the patch manually or check with the vendor for a backport that protects print_page_owner_memcg() while keeping CONFIG_DEBUG_VM enabled.
  • Avoid loading custom kernel modules or debugging tools that trigger page freeing or reallocation paths that exercise the function; run such modules only on non‑debug kernels or isolated environments.

Generated by OpenCVE AI on September 26, 2026 at 01:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 26 Sep 2026 02:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Thu, 24 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: mm/page_owner: use memcg_data snapshot to avoid TOCTOU in print_page_owner_memcg() print_page_owner_memcg() reads page->memcg_data via READ_ONCE() at the start to guard against tail pages and NULL data. However, it later re-reads page->memcg_data locklessly in two places: 1: page_memcg_check(page) 2: PageMemcgKmem(page) (via folio_memcg_kmem(), which includes VM_BUG_ON assertions for tail pages and MEMCG_DATA_OBJEXTS) If the page is concurrently freed and reallocated as a THP tail page or slab page between these calls, the VM_BUG_ON assertions can trigger on CONFIG_DEBUG_VM=y builds, crashing the kernel. Fix both TOCTOU issues by using the memcg_data snapshot throughout.
Title mm/page_owner: use memcg_data snapshot to avoid TOCTOU in print_page_owner_memcg()
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-09-24T15:10:38.702Z

Reserved: 2026-09-17T16:02:15.093Z

Link: CVE-2026-93216

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-24T16:17:16.670

Modified: 2026-09-24T16:17:16.670

Link: CVE-2026-93216

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-26T02:00:02Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')