In the Linux kernel, the following vulnerability has been resolved:
mm/hugetlb: fix hugetlb_pmd_shared()
Patch series "mm/hugetlb: fixes for PMD table sharing (incl. using
mmu_gather)", v3.
One functional fix, one performance regression fix, and two related
comment fixes.
I cleaned up my prototype I recently shared [1] for the performance fix,
deferring most of the cleanups I had in the prototype to a later point.
While doing that I identified the other things.
The goal of this patch set is to be backported to stable trees "fairly"
easily. At least patch #1 and #4.
Patch #1 fixes hugetlb_pmd_shared() not detecting any sharing
Patch #2 + #3 are simple comment fixes that patch #4 interacts with.
Patch #4 is a fix for the reported performance regression due to excessive
IPI broadcasts during fork()+exit().
The last patch is all about TLB flushes, IPIs and mmu_gather.
Read: complicated
There are plenty of cleanups in the future to be had + one reasonable
optimization on x86. But that's all out of scope for this series.
Runtime tested, with a focus on fixing the performance regression using
the original reproducer [2] on x86.
This patch (of 4):
We switched from (wrongly) using the page count to an independent shared
count. Now, shared page tables have a refcount of 1 (excluding
speculative references) and instead use ptdesc->pt_share_count to identify
sharing.
We didn't convert hugetlb_pmd_shared(), so right now, we would never
detect a shared PMD table as such, because sharing/unsharing no longer
touches the refcount of a PMD table.
Page migration, like mbind() or migrate_pages() would allow for migrating
folios mapped into such shared PMD tables, even though the folios are not
exclusive. In smaps we would account them as "private" although they are
"shared", and we would be wrongly setting the PM_MMAP_EXCLUSIVE in the
pagemap interface.
Fix it by properly using ptdesc_pmd_is_shared() in hugetlb_pmd_shared().
Security readout for executives and security teams
Plain-English summary
A Linux HugeTLB memory-management error can make the kernel overlook shared page-table mappings. This may allow migration of huge pages that are not exclusive and cause monitoring interfaces to report shared memory as private or exclusive. The supplied sources do not establish a broader security impact, severity score, or exploitation.
Executive priority
Treat this as targeted kernel maintenance rather than an emergency based on current evidence. Promptly assess systems using HugeTLB or relying on pagemap exclusivity and migration correctness. Broader escalation should depend on vendor severity guidance, exposure confirmation, and evidence of security impact or exploitation.
Technical view
hugetlb_pmd_shared() continued using a PMD table page reference count after sharing detection moved to ptdesc->pt_share_count. Consequently, shared PMD tables were never recognized. The fix calls ptdesc_pmd_is_shared(). Documented effects include improper migration eligibility and incorrect smaps and pagemap reporting, including erroneous PM_MMAP_EXCLUSIVE flags.
Likely exposure
Exposure is most plausible on affected Linux kernels running workloads that use HugeTLB with shared PMD page tables, particularly where page migration, mbind(), migrate_pages(), smaps, or pagemap information matters. Ordinary systems not using this configuration may have limited exposure. The bundle's version data should be checked against exact vendor builds and backports.
Exploitation context
The source bundle reports that this CVE is not in KEV and provides no evidence of active exploitation, public weaponization, or a demonstrated attack path. It describes a kernel correctness flaw involving migration and memory-accounting semantics. Required privileges, reachability, and concrete confidentiality, integrity, or availability consequences are not specified.
Researcher notes
The central regression followed replacement of PMD page-count-based sharing with ptdesc->pt_share_count without converting hugetlb_pmd_shared(). Researchers should distinguish the functional consequences documented here from unproven security outcomes. The supplied record lacks CVSS, CWE classification, privilege requirements, and demonstrated exploitability, limiting confident risk quantification.
Mitigation direction
Install a vendor-supported kernel release containing the referenced stable fix.
Prioritize affected systems that actively use HugeTLB shared PMD mappings.
Check distribution and appliance vendor advisories for backported-fix status.
If updating is delayed, follow vendor guidance for configuration-specific risk reduction.
Validation and detection
Inventory running kernel versions and vendor package revisions.
Determine whether workloads use HugeTLB with shared PMD page tables.
Compare exact builds against CVE and vendor backport information.
Confirm the installed source or vendor changelog includes the hugetlb_pmd_shared() correction.
Validate smaps, pagemap, and migration behavior in an authorized staging environment.
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-2026-23100 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
1ADP providers
10Source 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.
Feb 4, 2026, 16:08 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.