CVE-2026-97525

HIGHPre-NVD 8.28.2—
EchelonGraph scoreHIGH confidence

Score 8.2 from GitHub Security Advisory (severity: HIGH) published 2026-09-25. A secondary CVSS source baseline 8.2; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, secondary
Trending — 3 sources updated this week
8.2EG
EchelonGraph verdictPlan mitigationSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0.2%CVSS: 8.2Exploit: None knownExposed services: Not assessed

No fix is confirmed yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for the fix.

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

x86/mm/pat: Allocate split page tables as kernel page tables

A PTE is allocated directly without going through the standard page table allocation routines (such as pte_alloc_one_kernel()) when the CPA code splits a large page (__split_large_page()).

This means the page table constructor is never called nor is the page table marked as a kernel page table.

The former results in the folio associated with the page table not being marked as a page table (__pagetable_ctor() is never called thus neither is __folio_set_pgtable()) nor are statistics updated to reflect it (lruvec_stat_add_folio() is never called).

The latter issue of failing to mark the page table as a kernel page table (ptdesc_set_kernel() is never called) is far more problematic.

Since commit:

5ba2f0a15564 ("mm: introduce deferred freeing for kernel page tables")

kernel page table freeing has been batched and since the subsequent commit:

e37d5a2d60a3 ("iommu/sva: invalidate stale IOTLB entries for kernel address space")

IOTLB cache entries for kernel page tables have been invalidated upon being freed.

Since split page tables are freed without this invalidation, the IOTLB can contain stale entries for them.

Resolve the issue by using the ordinary PTE allocation API at split time.

This results in these kernel page tables invoking a page table constructor, and thus requires a page table destructor.

Destructors are not always present, like for early allocated direct map page tables). Conditionally call pagetable_dtor_free() if the PG_table folio flag for the ptdesc is set, otherwise we free the page table via pagetable_free().

Regardless of which path is taken page tables marked as kernel page tables, which now includes split page tables, take the correct route through pagetable_free_kernel().

There is a user-visible side effect in that split page tables will appear in nr_page_table_pages in /proc/vmstat (as do other kernel page tables allocated after early boot), however this is a positive change.

This issue started being markedly problematic after commit:

5ba2f0a15564 ("mm: introduce deferred freeing for kernel page tables")

so choose this as the Fixes target.

[ dhansen: rephrase in imperative mood ]

CVSS v3
8.2
EG Score
8.2HIGHhigh confidence
EG Risk
41
EG Risk 41/100CISA SSVC

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity82% × 45%
Exploitation0% × 40%
Automatability30% × 15%
CISA SSVC: Track at low or medium mission impact; Track or Attend at high (mission-essential systems).
Action: No fix is confirmed yet. Restrict network exposure of the affected system or apply the vendor's mitigation within your standard update timelines at low or medium mission impact and sooner than that at high, and watch the vendor's advisory for the fix.
EPSS PROB
0.2%
EPSS %ILE
5th
KEV
Not listed

CISA SSVCTrack at low or medium mission impact; Track or Attend at high (mission-essential systems).

No fix is confirmed yet. Restrict network exposure of the affected system or apply the vendor's mitigation within your standard update timelines at low or medium mission impact and sooner than that at high, and watch the vendor's advisory for the fix.

Exploitation none (no KEV listing, exploit record or EPSS ≥ 50%) · Automatable unknown (not published for this CVE) · Technical impact partial (CVSS below 9.0). Mission impact is CISA's Mission & Well-being decision point, and only you can judge it: high means the affected system is essential to your organisation's mission, or its compromise could cause irreversible harm to people. CISA's decision table

Published

September 25, 2026

Last Modified

September 25, 2026

Advisory Details (3)

Auto-updated Sep 25, 2026
No patch confirmed yet.
generic

x86/mm/pat: Allocate split page tables as kernel page tables - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/9e4a3ec3411bb6bb59e3c1f29b75609f1e87aac4
generic

x86/mm/pat: Allocate split page tables as kernel page tables - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/922873cf4fc34124215070a8ad391bf831538bb9
generic

x86/mm/pat: Allocate split page tables as kernel page tables - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/84e0cd79d57f06b872154eb5d8f610584133f260

Vendor Advisories for CVE-2026-97525(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Affected Packages

(1 across 1 ecosystem)
Debian:14(1)
PackageVulnerable rangeFix by version rangeDependents
linux6.12.100-1 ... 7.2~rc7-1~exp1 (179 versions)
  • every version up to 7.2.7-1: fixed in 7.2.7-1
—

Data Freshness Timeline

(refreshed 30× in last 7d / 49× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-10-05 07:52 UTCEG score recompute
  2. 2026-10-05 07:52 UTCGHSA enrichment
  3. 2026-10-04 23:23 UTCEPSS rescore
  4. 2026-10-04 20:50 UTCGHSA enrichment
  5. 2026-10-04 09:48 UTCGHSA enrichment
  6. 2026-10-03 22:45 UTCEG score recompute
  7. 2026-10-03 22:45 UTCGHSA enrichment
  8. 2026-10-03 14:26 UTCEPSS rescore
  9. 2026-10-03 11:43 UTCGHSA enrichment
  10. 2026-10-03 00:35 UTCEG score recompute
  11. 2026-10-03 00:35 UTCGHSA enrichment
  12. 2026-10-02 17:57 UTCEPSS rescore
  13. 2026-10-02 13:32 UTCGHSA enrichment
  14. 2026-10-02 02:28 UTCEG score recompute
  15. 2026-10-02 02:28 UTCGHSA enrichment
  16. 2026-10-01 19:51 UTCEPSS rescore
  17. 2026-10-01 15:25 UTCGHSA enrichment
  18. 2026-10-01 04:22 UTCGHSA enrichment
  19. 2026-09-30 17:19 UTCEG score recompute
  20. 2026-09-30 17:19 UTCGHSA enrichment
  21. 2026-09-30 15:04 UTCEPSS rescore
  22. 2026-09-30 06:17 UTCGHSA enrichment
  23. 2026-09-29 19:14 UTCEG score recompute
  24. 2026-09-29 19:14 UTCGHSA enrichment
  25. 2026-09-29 08:11 UTCEG score recompute
Show 24 more
  1. 2026-09-29 08:11 UTCGHSA enrichment
  2. 2026-09-28 21:09 UTCEG score recompute
  3. 2026-09-28 21:09 UTCGHSA enrichment
  4. 2026-09-28 13:52 UTCEPSS rescore
  5. 2026-09-28 13:52 UTCEPSS rescore
  6. 2026-09-28 10:06 UTCGHSA enrichment
  7. 2026-09-27 23:03 UTCEG score recompute
  8. 2026-09-27 23:03 UTCGHSA enrichment
  9. 2026-09-27 13:49 UTCEPSS rescore
  10. 2026-09-27 12:00 UTCGHSA enrichment
  11. 2026-09-27 00:57 UTCEG score recompute
  12. 2026-09-27 00:57 UTCGHSA enrichment
  13. 2026-09-26 15:59 UTCEPSS rescore
  14. 2026-09-26 13:55 UTCGHSA enrichment
  15. 2026-09-26 02:28 UTCEG score recompute
  16. 2026-09-26 02:28 UTCGHSA enrichment
  17. 2026-09-25 15:26 UTCEG score recompute
  18. 2026-09-25 15:26 UTCGHSA enrichment
  19. 2026-09-25 14:53 UTCEG score recompute▲ 8.20
  20. 2026-09-25 14:53 UTCGHSA enrichment
  21. 2026-09-25 14:49 UTCMITRE cvelistV5CVSS v3 → 8.2 · severity → HIGH
  22. 2026-09-25 11:29 UTCNVD update
  23. 2026-09-25 10:41 UTCEG score recompute
  24. 2026-09-25 10:27 UTCMITRE cvelistV5first tracked

Frequently asked(5)

What is CVE-2026-97525?
CVE-2026-97525 is a high vulnerability published on September 25, 2026. In the Linux kernel, the following vulnerability has been resolved: x86/mm/pat: Allocate split page tables as kernel page tables A PTE is allocated directly without going through the standard page table allocation routines (such as pteallocone_kernel()) when the CPA code splits a large page…
When was CVE-2026-97525 disclosed?
CVE-2026-97525 was first published on September 25, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-97525 actively exploited?
CVE-2026-97525 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.2% probability of exploitation in the next 30 days (5th percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2026-97525?
CVE-2026-97525 has a CVSS base score of 8.2 (a secondary CVSS source that NVD displays; NVD's own analysis pending).
How do I remediate CVE-2026-97525?
No fix for CVE-2026-97525 is confirmed yet. Until one is published, restrict network exposure of the affected system or apply the vendor's mitigation — for example, keep it off the internet or limit it to trusted networks — and watch the vendor's advisory for the fix. The vendor advisories EchelonGraph has for CVE-2026-97525 are linked in the Vendor Advisories panel on this page.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-97525

Explore →

Is Your Infrastructure Affected by CVE-2026-97525?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.