CVE-2026-31429
net: skb: Behebung des Cross-Cache-Free von KFENCE-zugewiesenem skb-Head
- Veröffentlicht
- 20.04.2026
- Aktualisiert
- 11.05.2026
- CNA zuweisen
- Linux
- Beweise beobachtet
- 25.08.2026
Primäres CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HNiedrig · nächste 30 Tage
- Perzentil
- 17,9 %
- 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: skb: Cross-Cache-Free von KFENCE-allokierten skb-Head beheben SKB_SMALL_HEAD_CACHE_SIZE ist absichtlich auf einen Nicht-Zweierpotenz-Wert gesetzt (z. B. 704 auf x86_64), um Kollisionen mit generischen kmalloc-Bucket-Größen zu vermeiden. Dadurch wird sichergestellt, dass skb_kfree_head() zuverlässig skb_end_offset verwenden kann, um skb-Heads zu unterscheiden, die aus skb_small_head_cache stammen, von denen aus generischen kmalloc-Caches. Wenn jedoch KFENCE aktiviert ist, gibt kfence_ksize() die exakt angeforderte Allokationsgröße zurück, anstatt die Slab-Bucket-Größe. Wenn ein Aufrufer (z. B. bpf_test_init) skb-Head-Daten über kzalloc() allokiert und die angeforderte Größe zufällig SKB_SMALL_HEAD_CACHE_SIZE entspricht, dann gibt slab_build_skb() -> ksize() genau diesen Wert zurück. Nach Abzug des skb_shared_info-Overheads stimmt skb_end_offset am Ende mit SKB_SMALL_HEAD_HEADROOM überein, wodurch skb_kfree_head() das Objekt fälschlicherweise an skb_small_head_cache freigibt, anstatt zurück an den ursprünglichen kmalloc-Cache, was zu einem Slab-Cross-Cache-Free führt: kmem_cache_free(skbuff_small_head): Falscher Slab-Cache. Erwartet wurde skbuff_small_head, erhalten wurde jedoch kmalloc-1k Beheben Sie dies, indem Sie in skb_kfree_head() immer kfree(head) aufrufen. Dadurch bleibt der Freigabepfad generisch und eine allokator-spezifische Fehlklassifizierung für KFENCE-Objekte wird vermieden.
Quellen
1# POC für CVE-2026-31429 (Linux Kernel >= 6.3 < 6.12.82 Slab Cross-Cache Confusion) – Schwachstelle entdeckt von Antonius – w1sdom – bluedragonsec.com
Verantwortungsvoller 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.