CVE-2026-80841 in Linux
Zusammenfassung
von VulDB • 04.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
net/packet: Freigabe von vmalloc TX_RING verzögern, bis SKBs abgeschlossen sind
AF_PACKET TX-Ring-SKBs behalten einen Raw-Pointer auf ihren Ring-Frame. Die skb-Seitenreferenzen erhalten seitenbasierte Ringblöcke nach der Freigabe von pg_vec bei, bewahren jedoch keine vmalloc-Zuordnung.
tpacket_destruct_skb() gibt derzeit die ausstehende Referenz vor dem Schreiben des Zeitstempels und TP_STATUS_AVAILABLE in den Frame frei. Verschieben Sie den Dekrement nach diesen Schreibvorgängen. Das smp_wmb() in __packet_set_status() ordnet die Frame-Schreibvorgänge vor dem Dekrement zu.
Überprüfen Sie außerdem ausstehende TX-Frames unter pg_vec_lock, bevor ein Ring ersetzt wird, der nicht geschlossen ist, damit eine Race Condition beim Senden kein ausstehendes SKB zwischen der ersten Überprüfung und dem Ring-Wechsel hinzufügen kann.
Die Ringzuweisung kann eine Mischung aus seitenbasierten und vmalloc-basierten Blöcken erzeugen. Weisen Sie Speicher für verzögerte Arbeiten während der TX-Ring-Einrichtung zu, wenn der erste vmalloc-basierte Block erkannt wird, und behalten Sie dessen Zeiger im pg_vec-Zuordnungskopf bei. Wenn die Zuweisung fehlschlägt, geben Sie -ENOMEM aus der Ring-Einrichtung zurück. Beim Socket-Schluss identifiziert ein nicht-NULL-Zeiger einen vmalloc-basierten Vektor ohne Scan. Wenn TX-SKBs verbleiben, verschieben Sie den gesamten Vektor zu system_long_wq.
Nachdem pg_vec getrennt wurde, kann ein später Destruktor den ausstehenden Dekrement überspringen. Verwenden Sie die Socket-Write-Memory-Buchhaltung als verzögerte Lebensdauerschwelle: Ein SKB bleibt bis zum finalen sock_wfree() belastet, nach allen Ring-Frame-Zugriffen. Die verzögerten Arbeiten behalten eine Socket-Referenz bei und planen sich neu, bis keine TX-SKBs mehr vorhanden sind.
Verschieben Sie die Freigabe von pending_refcnt zu packet_sock_destruct(), damit späte SKB-Destruktoren und deferred Cleanup es nach packet_release() sicher verwenden können. Die seitenbasierte Teardown bleibt synchronisch, und kein Lock wird zum TX-Completion-Hotpath hinzugefügt.
If you want to get best quality of vulnerability data, you may have to visit VulDB.