Skip to main content

Linux Kernel CVE-2026-64302

| EUVDEUVD-2026-49014 MEDIUM
2026-07-25 Linux GHSA-rmr6-r8pg-m34q
5.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
4.4 MEDIUM

Memory section removal requires CAP_SYS_ADMIN (PR:H); no confidentiality or integrity impact; availability impact is high via memory exhaustion.

3.1 AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:P/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
MEDIUM
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

6
Metadata Corrected
Sep 03, 2026 - 16:40 vuln.today
tag: Information Disclosure removed
Analysis Generated
Sep 03, 2026 - 16:29 vuln.today
CVSS changed
Sep 03, 2026 - 16:22 NVD
5.5 (MEDIUM)
Patch available
Jul 25, 2026 - 11:18 EUVD
CVE Published
Jul 25, 2026 - 08:49 nvd
MEDIUM 5.5
CVE Published
Jul 25, 2026 - 08:49 cve.org
UNKNOWN (no severity yet)

DescriptionNVD

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

x86/mm: Fix freeing of PMD-sized vmemmap pages

Commit bf9e4e30f353 ("x86/mm: use pagetable_free()"), switched from freeing non-boot page tables through __free_pages() to pagetable_free().

However, the function is also called to free vmemmap pages.

Given that vmemmap pages are not page tables, already the page_ptdesc(page) is wrong. But worse, pagetable_free() calls:

__free_pages(page, compound_order(page));

Since vmemmap pages are not compound pages (see vmemmap_alloc_block()) -- except for HVO, which doesn't apply here -- only first page of a PMD-sized vmemmap page is freed, leaking the other ones.

Fix it by properly decoupling pagetable and vmemmap freeing. free_pagetable() no longer has to mess with SECTION_INFO, as only the vmemmap is marked like that in register_page_bootmem_memmap().

The indentation in remove_pmd_table() is messed up. Fix that while touching it.

Bootmem info handling will soon be fixed up. For now, handle it similar to free_pagetable(), just avoiding the ifdef.

[ dhansen: changelog munging. More imperative voice ]

AnalysisAI

PMD-sized vmemmap pages are silently leaked in the Linux kernel's x86 memory management subsystem following a regression introduced in commit bf9e4e30f353, which replaced __free_pages() with pagetable_free() for vmemmap page freeing. Because vmemmap pages are not compound pages (outside of HVO, which does not apply here), pagetable_free() resolves compound_order() to zero and frees only the first page of a PMD-sized block, leaking the remaining pages on every memory section removal. Systems running affected kernel versions (6.18.7-6.18.38, 6.19 series through 7.1.3) that perform x86 memory hotplug operations will experience progressive physical memory loss; no public exploit has been identified and this vulnerability is not in CISA KEV.

Technical ContextAI

The vmemmap is a kernel virtual address region that stores struct page descriptors for all physical memory. On x86-64, when PMD-sized pages are used for the vmemmap (a 2 MiB / 512-page block), they are allocated via vmemmap_alloc_block() as normal (non-compound) pages. The regression in commit bf9e4e30f353 modified free_pagetable() to call pagetable_free() instead of __free_pages(), which is appropriate for actual page tables but incorrect for vmemmap pages. pagetable_free() internally invokes __free_pages(page, compound_order(page)); for non-compound pages, compound_order() returns 0, so the free covers only 4 KiB rather than the full 2 MiB allocation - 511 pages per removal are permanently leaked. The fix properly decouples vmemmap freeing from pagetable freeing by restoring the direct __free_pages() path for vmemmap sections, distinguished via the SECTION_INFO marking set in register_page_bootmem_memmap(). Although no CWE is assigned, this most closely maps to CWE-401 (Missing Release of Memory after Effective Lifetime). The affected CPE is cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*.

RemediationAI

Upgrade to Linux kernel 6.18.39, 7.1.4, or 7.2-rc1, which contain the corrective fix decoupling vmemmap and pagetable freeing paths. The three stable-tree fix commits are available at https://git.kernel.org/stable/c/add1e4112e00b619614784bf630aeebfdefa23e1, https://git.kernel.org/stable/c/03f6ecbc446c33b38fd452cd3c494092a8116967, and https://git.kernel.org/stable/c/39406c05f8f150f1685839acd38ffdd69ff92031. On systems where memory hotplug is not operationally required, disabling it via the kernel boot parameter memhp_default_state=offline or by omitting CONFIG_MEMORY_HOTPLUG at build time prevents the leak path entirely, at the cost of losing the ability to add or remove DIMMs at runtime. For virtualized environments using memory ballooning, pinning balloon size or disabling the balloon driver removes the trigger condition. No workaround eliminates the underlying bug without kernel update.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected

Share

CVE-2026-64302 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy