CVE-2026-80893 in Linuxinfo

Zusammenfassung

von VulDB • 04.09.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

mm/hugetlb: Behebung der Swap-Eintrag-Korruption beim Löschen von uffd-wp bei fork()

copy_hugetlb_page_range() löscht das uffd-wp-Bit von Migrations- und HW-Poison-Einträgen mit huge_pte_clear_uffd_wp(), welches an der Position des present-PTE-Bits operiert. Swap-Einträge speichern den uffd-wp-Zustand anderweitig – der Migrationszweig liest und setzt ihn über pte_swp_uffd_wp() und pte_swp_mkuffd_wp() –, während die present-PTE-Position in das Swap-Payload fällt. Auf x86-64 landet sie im invertierten Swap-Offset, wo ein natürlich ausgerichteter hugetlb-PFN immer das betroffene Bit gesetzt hat; daher führt das Löschen dazu, dass der codierte PFN um zwei Seiten vorgerückt wird.

Es muss kein userfaultfd beteiligt sein: Das Löschen ist nur dadurch geschützt, dass die VMA des Kindes nicht als uffd-wp registriert ist, sodass ein einfacher fork()-Aufruf mit einem laufenden hugetlb-Migrationseintrag (oder einer gehuwpoisoneten hugetlb-Seite) den in das Kind kopierten Eintrag korruptiert. Die Instrumentierung des Löschvorgangs und ein Fork nach MADV_HWPOISON auf einer 2 MB großen anonymen hugetlb-Seite zeigt:

offset before=120e00 offset after =120e02

Die Folgen sind meist latent: rmap-Walks stimmen Migrations-Einträge anhand des folio-Bereichs ab, und remove_migration_pte() baut das PTE aus dem folio wieder auf, sodass eine PFN-Abweichung innerhalb eines Folios nach Abschluss der Migration behoben wird. Jeder Pfad jedoch, der den korrupten Offset neu codiert – z. B. hugetlb_change_protection(), das einen beschreibbaren Migrations-Eintrag über make_readable_migration_entry(swp_offset(entry)) überschreibt –, propagiert die Korruption.

Migrations-Einträge tragen legitim uffd-wp; daher sollte dies mit pte_swp_clear_uffd_wp() gelöscht werden, entsprechend copy_nonpresent_pte() und move_huge_pte().

Ein HW-Poison-Eintrag trägt hingegen niemals das uffd-wp-Bit: Er wird frisch von make_hwpoison_entry() installiert (try_to_unmap_one() bewahrt uffd-wp auf dem hwpoison-Pfad nicht), und hugetlb_change_protection() lässt hwpoison-Einträge unverändert. Es gab dort nichts zu löschen, nur die Korruption; daher wird das Löschen vollständig entfernt.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Zuständig

Linux

Reservieren

26.08.2026

Veröffentlichung

04.09.2026

Moderieren

akzeptiert

Eintrag

VDB-399091

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Want to stay up to date on a daily basis?

Enable the mail alert feature now!