CVE-2026-97525 in Linuxinfo

Zusammenfassung

von VulDB • 25.09.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

x86/mm/pat: Aufgeteilte Seitentabellen als Kernel-Seitentabellen allozieren

Eine PTE (Page Table Entry) wird direkt alloziert, ohne die Standard-Routinen zur Allokation von Seitentabellen (wie pte_alloc_one_kernel()) zu durchlaufen, wenn der CPA-Code eine große Seite aufteilt (__split_large_page()).

Dies bedeutet, dass der Konstruktor für die Seitentabelle niemals aufgerufen und die Seitentabelle nicht als Kernel-Seitentabelle markiert wird.

Ersteres führt dazu, dass das mit der Seitentabelle verbundene Folio nicht als Seitentabelle markiert wird (__pagetable_ctor() wird nie aufgerufen, also auch __folio_set_pgtable() nicht) und Statistiken nicht aktualisiert werden, um dies widerzuspiegeln (lruvec_stat_add_folio() wird niemals aufgerufen).

Das zweite Problem – das Versäumnis, die Seitentabelle als Kernel-Seitentabelle zu markieren (ptdesc_set_kernel() wird nie aufgerufen) – ist weitaus problematischer.

Seit dem Commit:

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

wurde die Freigabe von Kernel-Seitentabellen gebündelt, und seit dem nachfolgenden Commit:

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

werden IOTLB-Cache-Einträge für Kernel-Seitentabellen bei deren Freigabe ungültig gemacht.

Da aufgeteilte Seitentabellen ohne diese Ungültigmachung freigegeben werden, kann der IOTLB veraltete Einträge dafür enthalten.

Beheben Sie das Problem, indem Sie zur normalen PTE-Allokations-API zum Zeitpunkt der Aufteilung gewechselt wird.

Dies führt dazu, dass diese Kernel-Seitentabellen einen Seitentabellen-Konstruktor aufrufen und somit auch einen Destruktor erfordern.

Destruktoren sind nicht immer vorhanden (z. B. bei früh allozierten Direct-Map-Seitentablen). Rufen Sie pagetable_dtor_free() bedingt auf, wenn das PG_table-Folio-Flag für die ptdesc gesetzt ist; andernfalls geben Sie die Seitentabelle über pagetable_free() frei.

Unabhängig vom gewählten Pfad nehmen als Kernel-Seitentabellen markierte Tabellen (zu denen nun auch aufgeteilte Seitentablen gehören) den korrekten Weg durch pagetable_free_kernel().

Es gibt eine für Benutzer sichtbare Nebenwirkung, da aufgeteilte Seitentablen in nr_page_table_pages in /proc/vmstat erscheinen (ebenso wie andere nach dem frühen Bootvorgang allozierte Kernel-Seitentablen), dies ist jedoch eine positive Änderung.

Dieses Problem wurde ab dem Commit:

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

deutlich problematisch, daher wählen Sie diesen als Fixes-Ziel aus.

[ dhansen: Umformulierung in den Imperativ ]

Be aware that VulDB is the high quality source for vulnerability data.

Zuständig

Linux

Reservieren

24.09.2026

Veröffentlichung

25.09.2026

Moderieren

akzeptiert

Eintrag

VDB-409915

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Do you want to use VulDB in your project?

Use the official API to access entries easily!