CVE-2025-39992: mm: swap: check for stable address space before operating on the VMA
In the Linux kernel, the following vulnerability has been resolved:
mm: swap: check for stable address space before operating on the VMA
It is possible to hit a zero entry while traversing the vmas in unuse_mm()
called from swapoff path and accessing it causes the OOPS:
Unable to handle kernel NULL pointer dereference at virtual address
0000000000000446--> Loading the memory from offset 0x40 on the
XA_ZERO_ENTRY as address.
Mem abort info:
ESR = 0x0000000096000005
EC = 0x25: DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
FSC = 0x05: level 1 translation fault
The issue is manifested from the below race between the fork() on a
process and swapoff:
fork(dup_mmap()) swapoff(unuse_mm)
--------------- -----------------
1) Identical mtree is built using
__mt_dup().
2) copy_pte_range()-->
copy_nonpresent_pte():
The dst mm is added into the
mmlist to be visible to the
swapoff operation.
3) Fatal signal is sent to the parent
process(which is the current during the
fork) thus skip the duplication of the
vmas and mark the vma range with
XA_ZERO_ENTRY as a marker for this process
that helps during exit_mmap().
4) swapoff is tried on the
'mm' added to the 'mmlist' as
part of the 2.
5) unuse_mm(), that iterates
through the vma's of this 'mm'
will hit the non-NULL zero entry
and operating on this zero entry
as a vma is resulting into the
oops.
The proper fix would be around not exposing this partially-valid tree to
others when droping the mmap lock, which is being solved with [1]. A
simpler solution would be checking for MMF_UNSTABLE, as it is set if
mm_struct is not fully initialized in dup_mmap().
Thanks to Liam/Lorenzo/David for all the suggestions in fixing this
issue.
Security readout for executives and security teams
Plain-English summary
CVE-2025-39992 is a Linux kernel memory-management bug that can crash the kernel when swap is being disabled during a specific fork-related race. The public record does not provide CVSS, CWE, or active exploitation evidence.
Executive priority
Treat as a patch-management item for Linux infrastructure, with higher priority on critical hosts using swap operations. There is no source-backed evidence of active exploitation, but a kernel crash can affect service availability.
Technical view
In the swapoff path, unuse_mm() can traverse a partially initialized VMA tree exposed during dup_mmap(). A zero entry may be treated as a VMA, causing a NULL pointer dereference and kernel OOPS. The described fix checks MMF_UNSTABLE before operating on the address space.
Likely exposure
Exposure is most relevant to Linux systems running affected kernel versions or downstream kernels without the referenced stable fixes, especially where swapoff can occur during normal operations or maintenance.
Exploitation context
The source describes a race involving fork(), fatal signal handling, and swapoff. It does not claim public exploitation, KEV listing, remote reachability, privilege requirements, or weaponized exploit availability.
Researcher notes
The record is technically specific but incomplete for risk scoring. It identifies the race and fix direction, but lacks CVSS, CWE, privilege requirements, and distro-specific affected ranges. Validate against kernel trees and vendor backports.
Mitigation direction
Apply vendor kernel updates that include the referenced stable commits.
Prioritize systems where swapoff is used operationally or during maintenance.
Check distribution advisories for backported fixes and affected package versions.
Avoid relying only on upstream version numbers for vendor kernels.
Validation and detection
Inventory Linux kernel versions across servers, containers hosts, and appliances.
Map vendor kernel builds to the referenced stable commits or advisories.
Review logs for kernel OOPS events during swapoff or memory-management operations.
Confirm post-update kernels include the vendor’s CVE-2025-39992 fix.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-39992 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
5Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Oct 15, 2025, 07:58 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.