Executive brief
A vulnerability in the Linux kernel's memory management system could allow a local user to cause a system crash or performance degradation. The issue stems from how the system tracks shared memory tables, which can lead to incorrect memory accounting and improper handling of memory migration. This affects systems using large memory pages (HugeTLB), potentially impacting service availability and operational stability.
Technical details
A logic error in the Linux kernel's HugeTLB subsystem occurred because hugetlb_pmd_shared() was not updated to use the new independent shared count mechanism (ptdesc->pt_share_count). Previously, the function relied on page refcounts, which no longer reflect sharing status after recent architectural changes. This failure to detect shared PMD tables causes the kernel to incorrectly treat shared folios as private, leading to improper behavior during page migration (e.g., mbind or migrate_pages) and incorrect reporting in smaps and pagemap interfaces. An attacker with local access could potentially exploit this to cause a denial-of-service or trigger unexpected kernel behavior. The issue has been resolved by updating the function to use ptdesc_pmd_is_shared().
Affected products
- Linux Linux Kernel versions prior to 6.13.y, 6.12.y, 6.6.y, 6.1.y, 5.15.y, 5.10.y, 5.4.y, 4.19.y
- Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP V3.1.5, V3.1.6
- Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP V3.1.5, V3.1.6
Timeline
- 2025-12-23: disclosed: Initial patch submission by David Hildenbrand
- 2026-02-04: advisory: CVE published
- 2026-02-19: patched: Patch committed to stable trees
References
- https://git.kernel.org/stable/c/3a18b452dd5f7f1652c2e92f8ae769aa17a66c9e
- https://git.kernel.org/stable/c/51dcf459845fd28f5a0d83d408a379b274ec5cc5
- https://git.kernel.org/stable/c/5b2aec77f92265a9028c5f632bdd9af5b57ec3a3
- https://git.kernel.org/stable/c/69c4e241ff13545d410a8b2a688c932182a858bf
- https://git.kernel.org/stable/c/8ae48255bcb17b32436be97553dca848730d365f
- https://git.kernel.org/stable/c/bf3c2affe245cf831866ddc8f736ae6a22cdc11c
- https://git.kernel.org/stable/c/ca1a47cd3f5f4c46ca188b1c9a27af87d1ab2216