CVE-2026-64130

Linux kernel (GCP) vulnerabilities

Beschreibung

Im Linux-Kernel wurde folgende Schwachstelle behoben:

mm/page_alloc: Behebung der Initialisierung von Tags des riesigen Null-Folio mit init_on_free

Die Semantik von __GFP_ZEROTAGS ist momentan etwas seltsam, aber effektiv wird diese Flag nur zusammen mit __GFP_ZERO und __GFP_SKIP_KASAN gesetzt.

Wenn wir mit init_on_free laufen, werden Seiten während der Ausführung von __free_pages_prepare() auf Null gesetzt, um das Nullsetzen im Pfad der Zuweisung zu überspringen.

Allerdings wird bei der Zuweisung mit dem Flag __GFP_ZEROTAG gesetzt, die post_alloc_hook() nicht nur das Löschen des Seitengehalts überspringen, sondern auch das Löschen des Taggedächtnisses.

Das Nicht-Löschen von Tags durch __GFP_ZEROTAGS ist für die meisten Seiten irrelevant, die später über set_pte_at() in den Benutzerbereich abgebildet werden: set_pte_at() und Freunde erkennen, dass die Tags noch nicht initialisiert wurden (PG_mte_tagged nicht gesetzt), und initialisieren sie.

Allerdings für das riesige Null-Folio, das über eine als speziell markierte PMD abgebildet wird, wird diese Initialisierung nicht durchgeführt, was dazu führt, dass die Tags der Seiten, die noch gesetzt sind, offengelegt werden.

Die Dokumentation (Documentation/arch/arm64/memory-tagging-extension.rst) besagt, dass Zuweisungstags auf 0 gesetzt werden, wenn eine Seite zum ersten Mal in den Benutzerbereich abgebildet wird. Das gilt nicht mehr für das riesige Null-Folio, wenn init_on_free aktiviert ist.

Behebe es, indem du __GFP_ZEROTAGS von __GFP_ZERO entkoppelst und an tag_clear_highpages() weiterleitest, ob wir auch den Seitengehalt löschen möchten.

Invertiere die Bedeutung des Rückgabewerts von tag_clear_highpages(), um klarere Semantik zu haben.

Reproduziert mit dem riesigen Null-Folio durch Modifizierung der Selbstprüfung check_buffer_fill für arm64/mte, um ein 2 MiB großes Gebiet zu verwenden, nachdem sichergestellt wurde, dass Seiten einen nicht-0 Tag haben, wenn sie freigegeben werden (beachte, dass während des Bootvorgangs wir die Tags tatsächlich nicht initialisieren, sondern nur KASAN_TAG_KERNEL in den Seiteneigenschaften setzen).

$ ./check_buffer_fill
1..20
...
not ok 17 Check initial tags with private mapping, sync error mode and mmap memory
not ok 18 Check initial tags with private mapping, sync error mode and mmap/mprotect memory
...

Dieser Code benötigt weitere Bereinigungen; wir werden das als Nächstes angehen, wie z.B. die Entkopplung von `__GFP_ZEROTAGS` von `__GFP_SKIP_KASAN`.

[akpm@linux-foundation.org: s/__GPF_ZERO/__GFP_ZERO/, per David]

Metriken

Severity
medium
kein öffentlicher PoC bekannt
5.5
Quelle: nvd-v3
2.1 %
Niedrig — CVE gehört zu den unteren 10 % der heute bewerteten CVEs.
0.1 %
Niedrig — Modell schätzt < 1 % Ausnutzungs-Wahrscheinlichkeit.
Veröffentlicht
2026-09-07 09:05 UTC

Betroffene Betriebssysteme

  • linux

    redhat / enterprise_linux10.0

  • linux

    redhat / enterprise_linux7.0

  • linux

    redhat / enterprise_linux8.0

  • linux

    redhat / enterprise_linux9.0

  • linux

    ubuntu / linux-aws-6.8jammy

  • linux

    ubuntu / linux-azureresolute

  • linux

    ubuntu / linux-azuretrusty

  • linux

    ubuntu / linux-azurexenial

  • linux

    ubuntu / linux-azure-4.15bionic

  • linux

    ubuntu / linux-azure-5.4bionic

  • linux

    ubuntu / linux-azure-fdenoble

  • linux

    ubuntu / linux-azure-fderesolute

  • linux

    ubuntu / linux-azure-fde-6.8jammy

  • linux

    ubuntu / linux-azure-fipsbionic

  • linux

    ubuntu / linux-azure-fipsfocal

  • linux

    ubuntu / linux-azure-fipsnoble

  • linux

    ubuntu / linux-fipsjammy

  • linux

    ubuntu / linux-gcp-7.0noble

  • linux

    ubuntu / linux-gkejammy

  • linux

    ubuntu / linux-nvidia-tegranoble

  • linux

    ubuntu / linux-raspinoble

  • linux

    ubuntu / linux-raspi-realtimenoble

  • linux

    linux / linux_kernel2.6.12

  • linux

    linux / linux_kernel2.6.15

Quellen & Referenzen

Verknüpfte CVEs

1392 weitere CVEs anzeigen
IDCVE-2026-64130
Linux kernel (GCP) vulnerabilities — CVE-2026-64130 | NEOSEC Intel