CVE-2025-38084: mm/hugetlb: unshare page tables during VMA split, not before
In the Linux kernel, the following vulnerability has been resolved:
mm/hugetlb: unshare page tables during VMA split, not before
Currently, __split_vma() triggers hugetlb page table unsharing through
vm_ops->may_split(). This happens before the VMA lock and rmap locks are
taken - which is too early, it allows racing VMA-locked page faults in our
process and racing rmap walks from other processes to cause page tables to
be shared again before we actually perform the split.
Fix it by explicitly calling into the hugetlb unshare logic from
__split_vma() in the same place where THP splitting also happens. At that
point, both the VMA and the rmap(s) are write-locked.
An annoying detail is that we can now call into the helper
hugetlb_unshare_pmds() from two different locking contexts:
1. from hugetlb_split(), holding:
- mmap lock (exclusively)
- VMA lock
- file rmap lock (exclusively)
2. hugetlb_unshare_all_pmds(), which I think is designed to be able to
call us with only the mmap lock held (in shared mode), but currently
only runs while holding mmap lock (exclusively) and VMA lock
Backporting note:
This commit fixes a racy protection that was introduced in commit
b30c14cd6102 ("hugetlb: unshare some PMDs when splitting VMAs"); that
commit claimed to fix an issue introduced in 5.13, but it should actually
also go all the way back.
[jannh@google.com: v2]
Security readout for executives and security teams
Plain-English summary
A Linux kernel race condition can mishandle shared HugeTLB page tables while splitting a memory region. A local, low-privileged user may potentially compromise confidentiality, integrity, or availability. Exploitation requires local access and a specific memory-management path, so exposure depends on kernel status and workload behavior.
Executive priority
Prioritize remediation on shared, multi-user, and untrusted-workload Linux systems. Treat as a high-severity local privilege boundary risk, but do not characterize it as actively exploited based on the supplied evidence.
Technical view
HugeTLB page-table unsharing occurred before the VMA and reverse-mapping locks were acquired. Concurrent page faults or rmap walks could re-share tables before the VMA split completed. The referenced fix moves unsharing into the locked split phase, alongside transparent huge-page splitting.
Likely exposure
Potentially affected Linux systems should be assessed against their distribution's kernel advisory and backport history. Risk is greatest where untrusted local users or workloads can exercise HugeTLB-backed mappings. The supplied version data is insufficient to determine every distribution kernel's status reliably.
Exploitation context
The CVSS vector describes local, low-complexity exploitation requiring low privileges and no user interaction, with potentially high confidentiality, integrity, and availability impact. The bundle marks this CVE as absent from KEV and provides no evidence of active exploitation or a public exploit.
Researcher notes
Exact affected ranges are ambiguous in the supplied structured data. The backport note says the faulty protection was introduced by b30c14cd6102 and should be corrected further back than originally claimed. Validate branch-specific ancestry and distribution backports rather than relying only on displayed release numbers.
Mitigation direction
Install the vendor-supported kernel update containing the applicable upstream or stable fix.
Reboot into the updated kernel after installation.
If updates are unavailable, consult the Linux distribution's security guidance for supported mitigations.
Restrict untrusted local access and workloads until affected systems are remediated.
Validation and detection
Inventory running kernel versions on systems permitting local or tenant workloads.
Compare each kernel against its distribution's CVE-2025-38084 advisory and backport record.
Confirm the running kernel contains the applicable referenced fix commit.
Verify systems restarted into the corrected kernel rather than retaining the previous version.
Review HugeTLB usage to prioritize systems most likely to reach the vulnerable path.
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-38084 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.
1CVSS vectors
3Timeline events
1ADP providers
11Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.