CVE-2026-74481 in Linuxinfo

Zusammenfassung

von VulDB • 15.08.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

mm/page_reporting: Verwendung von system_freezable_wq zur Behebung eines Use-After-Free (UAF) während des Suspend-Vorgangs

Während des PM-Freeze-Zustands (z. B. S3-Suspend oder S4-Hibernation) setzen Gerätetreiber wie virtio_balloon ihre zugrunde liegenden VirtIO-Geräte zurück und löschen deren Virtqueues über vdev->config->del_vqs().

Die Arbeit für das Page-Reporting (page_reporting_process) wurde jedoch auf dem globalen system_wq geplant. Da system_wq nicht mit der WQ_FREEZABLE-Kennzeichnung versehen ist, überspringt es der PM-Freezer, wodurch page_reporting_process während des Suspend-Vorgangs aktiv bleibt.

Wenn Seiten während des Suspendens an den Buddy-Allocator freigegeben werden (z. B., wenn das Core-MM beim Speichern des Hibernation-Images im S4-Zustand den Balloon-Shrinker aufruft), löst das Page-Reporting virtballoon_free_page_report() auf bereits gelöschten Virtqueues aus, was zu einem Use-After-Free / General Protection Fault führt:

[ 196.795226] general protection fault, probably for non-canonical address 0xaa1436fe70dae6df: 0000 [#1] SMP NOPTI
[ 196.825967] Workqueue: events page_reporting_process
[ 196.831038] RIP: 0010:virtqueue_add_split+0x233/0x4c0 [virtio_ring]
[ 196.927073] virtballoon_free_page_report+0x3a/0xe0 [virtio_balloon]
[ 196.946943] page_reporting_process+0x370/0x4f0

Die Behebung erfolgt durch Wechsel des Page-Reporting-Arbeitsauftrags zu system_freezable_wq. Dies stellt sicher, dass der PM-Freezer den page_reporting_process anhält, bevor die Gerätetreiber ihre Reporting-Virtqueues zerstören. Da der Reporting-Worker eingefroren ist, kann die Speicherrückgewinnung/-freigabe (z. B. durch Shrinker-Ausführung) während des Freeze-Zustands sicher Seiten an das MM zurückgeben, ohne dass nicht angehaltene Reporting-Arbeitsaufträge auf gelöschten Virtqueues ausgelöst werden.

Dies entspricht dem bestehenden Design des Treibers. Der Kommentar in virtballoon_freeze() besagt: /* * Das Workqueue wird vom PM-Core bereits eingefroren, bevor diese * Funktion aufgerufen wird. */

Tests: Ich habe die Korrekturen mit der Virtualisierungsinfrastruktur von Google verifiziert, indem ich kontinuierliche Suspend/Resume-Zyklen (mehr als 40 Durchläufe) durchgeführt und dabei Speicher durch stress-ng belastet wurde (`stress-ng --vm 4 --vm-bytes 60% --timeout 1`), um ständig freie Seiten für den Buddy-Allocator zu erzeugen. Wir haben zudem den Parameter `page_reporting_order` auf 0 gesetzt, um den Page-Reporting-Worker hochsensibel zu machen und ihn dazu zu zwingen, beliebige 4K-freie Seiten aufzunehmen. Dies bestätigte, dass die UAF-Crashs nicht mehr reproduzierbar sind.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Zuständig

Linux

Reservieren

15.08.2026

Veröffentlichung

15.08.2026

Moderieren

akzeptiert

Eintrag

VDB-390772

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Do you know our Splunk app?

Download it now for free!