CVE-2026-52943
net: skbuff: Fehlende Zerocopy-Referenz in pskb_carve-Hilfsfunktionen behoben
- Veröffentlicht
- 24.06.2026
- Aktualisiert
- 08.09.2026
- CNA zuweisen
- Linux
- Beweise beobachtet
- 17.08.2026
Primäres CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNiedrig · nächste 30 Tage
- Perzentil
- 15,1 %
- Modelldatum
- 21.09.2026
EPSS ist eine statistische Schätzung, keine Gewissheit oder ein Maß für die Auswirkung. Kombinieren Sie es mit CVSS, KEV-Status, Belichtung und Ihrer Umgebung.
Zusammenfassung
Im Linux-Kernel wurde die folgende Schwachstelle behoben: net: skbuff: fehlende Zerocopy-Referenz in pskb_carve-Hilfsfunktionen behoben pskb_carve_inside_header() und pskb_carve_inside_nonlinear() kopieren beide den alten skb_shared_info-Header über memcpy() in einen neuen Puffer, was den destructor_arg-Zeiger (uarg) für MSG_ZEROCOPY-skbs einschließt. Keine der beiden Funktionen ruft net_zcopy_get() für das neue shinfo auf, wodurch ein nicht verbuchter Halter entsteht: Jedes skb_shared_info mit gesetztem destructor_arg ruft skb_zcopy_clear() einmal beim Freigeben auf, aber das entsprechende net_zcopy_get() wurde für die neue Kopie nie aufgerufen. Wiederholte Aufrufe treiben uarg->refcnt vorzeitig auf null und geben ubuf_info_msgzc frei, während TX-skbs weiterhin lebende destructor_arg-Zeiger halten. KASAN meldet use-after-free auf einem freigegebenen ubuf_info_msgzc: BUG: KASAN: slab-use-after-free in skb_release_data+0x77b/0x810 Read of size 8 at addr ffff88801574d3e8 by task poc/220 Call Trace: skb_release_data+0x77b/0x810 kfree_skb_list_reason+0x13e/0x610 skb_release_data+0x4cd/0x810 sk_skb_reason_drop+0xf3/0x340 skb_queue_purge_reason+0x282/0x440 rds_tcp_inc_free+0x1e/0x30 rds_recvmsg+0x354/0x1780 __sys_recvmsg+0xdf/0x180 Allocated by task 219: msg_zerocopy_realloc+0x157/0x7b0 tcp_sendmsg_locked+0x2892/0x3ba0 Freed by task 219: ip_recv_error+0x74a/0xb10 tcp_recvmsg+0x475/0x530 Das skb, das den späten Zugriff verbraucht, referenzierte weiterhin dasselbe uarg über shinfo->destructor_arg, das von pskb_carve_inside_nonlinear() ohne eine Refcount-Erhöhung kopiert wurde. Dies wurde als zuverlässig ausnutzbar verifiziert: Ein funktionierender Proof-of-Concept erreicht eine vollständige Root-Rechteausweitung von einem unprivilegierten lokalen Benutzer auf einer Standard-Kernel-Konfiguration. Der Fix folgt dem Muster von pskb_expand_head(), das dieselbe memcpy/geklonte Struktur aufweist. Für pskb_carve_inside_header() wird net_zcopy_get() platziert, nachdem skb_orphan_frags() erfolgreich war, sodass der Orphan-Fehlerpfad keine Bereinigung benötigt. Für pskb_carve_inside_nonlinear() wird net_zcopy_get() nach allen Fehlerpunkten und direkt vor skb_release_data() platziert, sodass kein Fehlerpfad eine Bereinigung benötigt – was pskb_expand_head() näher entspricht und die Notwendigkeit eines ausgleichenden net_zcopy_put() vermeidet.
Quellen
1Verantwortungsvoller Umgang
Verwenden Sie Schwachstelleninformationen nur auf Systemen, die Sie besitzen oder zu deren Testen Sie berechtigt sind. Kitploit verlinkt auf öffentliche Forschungsmetadaten und speichert keinen Exploit-Code oder bösartige Payloads.