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

mm/ptdump: always stabilise against page table freeing using init_mm

Previous commits have established the invariant that kernel page table
freeing is performed while an mmap read lock on init_mm is held, which
fixes races between ptdump and kernel page table freeing over init_mm.

However, x86 and arm64 can perform a ptdump over an mm other than init_mm
via ptdump_walk_pgd() and since kernel memory ranges are shared across
non-kernel mm's, this means that the race still exists for these cases.

Fix this by acquiring a nested mmap write lock for init_mm in
ptdump_walk_pgd().

This is safe as we take this after mmap write locking the mm, and nothing
acquires the init_mm lock first before locking an arbitrary mm, so no
deadlock is possible.

Also update walk_page_range_debug() to assert that init_mm is write
locked, add a comment explaining why and remove some redundant code, and
eliminate the unnecessary and confusing invocation of
walk_kernel_page_table_range().

We can safely remove the non-NULL check for walk.mm, as the mmap lock
asserts would NULL pointer deref if it was (and of course no callers do
this).

The first point at which ptdump can race kernel page table freeing is
commit b6bdb7517c3d ("mm/vmalloc: add interfaces to free unmapped page
table"), so we target this in the Fixes tag.
Published: 2026-08-22
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel suffered a race condition in the page table dump (ptdump) workflow. During a ptdump operation, the kernel can free page tables while another MMA‑mm is reading them if the init_mm lock is not held. This could allow a malicious process to read or manipulate freed memory, leading to kernel corruption, denial of service or privilege escalation. The underlying weakness is a synchronization failure between concurrent kernel operations.

Affected Systems

Vendors: Linux. The affected component is the Linux kernel, including architectures x86 and arm64 for which ptdump over non‑init_mm memory tables is possible. The advisory does not specify a particular major version, but the fix is present in the latest stable kernel releases containing the highlighted commits.

Risk and Exploitability

The advisory lists no EPSS score; exploitation likelihood cannot be quantified. The CVSS score is not provided, so the exact severity is unknown, but a race that can corrupt kernel memory is typically considered high risk. The vulnerability is not listed in CISA’s KEV catalog. Attackers would need local kernel access to trigger the race, typically by running privileged code to initiate a ptdump while another process frees page tables. No public exploitation has been reported and the fix applies a proper lock to prevent the race, eliminating the flaw.

Generated by OpenCVE AI on August 22, 2026 at 16:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the Linux kernel update that includes the commit restoring init_mm locking in ptdump_walk_pgd() (thereby removing the race condition).
  • Restart affected systems to load the updated kernel. The new kernel begins to enforce the necessary mmap write lock on init_mm, preventing concurrent page table freeing during dumps.
  • If an immediate kernel upgrade is not feasible, disable or remove utilities that invoke ptdump or kernel page table dumps to avoid triggering the race.

Generated by OpenCVE AI on August 22, 2026 at 16:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 16:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-479

Sat, 22 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: mm/ptdump: always stabilise against page table freeing using init_mm Previous commits have established the invariant that kernel page table freeing is performed while an mmap read lock on init_mm is held, which fixes races between ptdump and kernel page table freeing over init_mm. However, x86 and arm64 can perform a ptdump over an mm other than init_mm via ptdump_walk_pgd() and since kernel memory ranges are shared across non-kernel mm's, this means that the race still exists for these cases. Fix this by acquiring a nested mmap write lock for init_mm in ptdump_walk_pgd(). This is safe as we take this after mmap write locking the mm, and nothing acquires the init_mm lock first before locking an arbitrary mm, so no deadlock is possible. Also update walk_page_range_debug() to assert that init_mm is write locked, add a comment explaining why and remove some redundant code, and eliminate the unnecessary and confusing invocation of walk_kernel_page_table_range(). We can safely remove the non-NULL check for walk.mm, as the mmap lock asserts would NULL pointer deref if it was (and of course no callers do this). The first point at which ptdump can race kernel page table freeing is commit b6bdb7517c3d ("mm/vmalloc: add interfaces to free unmapped page table"), so we target this in the Fixes tag.
Title mm/ptdump: always stabilise against page table freeing using init_mm
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-22T15:31:48.604Z

Reserved: 2026-08-15T05:44:03.919Z

Link: CVE-2026-74599

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-22T16:16:32.303

Modified: 2026-08-22T16:16:32.303

Link: CVE-2026-74599

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T17:45:02Z

Weaknesses
  • CWE-479

    Signal Handler Use of a Non-reentrant Function