CVE-2026-31429
net : skb : corriger la libération inter-cache de la tête skb allouée par KFENCE
- Publié
- 20 avr. 2026
- Mise à jour
- 11 mai 2026
- Attribution de CNA
- Linux
- Preuve observée
- 25 août 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HFaible · 30 prochains jours
- Percentile
- 17,9 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
Dans le noyau Linux, la vulnérabilité suivante a été résolue : net: skb: correction de la libération inter-caches de la tête skb allouée par KFENCE SKB_SMALL_HEAD_CACHE_SIZE est intentionnellement défini sur une valeur qui n'est pas une puissance de 2 (par exemple 704 sur x86_64) afin d'éviter les collisions avec les tailles de buckets kmalloc génériques. Cela garantit que skb_kfree_head() peut utiliser de manière fiable skb_end_offset pour distinguer les têtes skb allouées depuis skb_small_head_cache des caches kmalloc génériques. Cependant, lorsque KFENCE est activé, kfence_ksize() renvoie la taille d'allocation exacte demandée au lieu de la taille du bucket de slab. Si un appelant (par exemple bpf_test_init) alloue les données de tête skb via kzalloc() et que la taille demandée se trouve être égale à SKB_SMALL_HEAD_CACHE_SIZE, alors slab_build_skb() -> ksize() renvoie cette valeur exacte. Après soustraction des frais généraux de skb_shared_info, skb_end_offset finit par correspondre à SKB_SMALL_HEAD_HEADROOM, ce qui amène skb_kfree_head() à libérer incorrectement l'objet vers skb_small_head_cache au lieu de le renvoyer au cache kmalloc d'origine, entraînant une libération inter-caches de slab : kmem_cache_free(skbuff_small_head): Wrong slab cache. Expected skbuff_small_head but got kmalloc-1k Corrigez cela en appelant toujours kfree(head) dans skb_kfree_head(). Cela maintient le chemin de libération générique et évite une mauvaise classification spécifique à l'allocateur pour les objets KFENCE.
Sources
1POC pour CVE-2026-31429 (Linux Kernel >= 6.3 < 6.12.82 Slab Cross-Cache Confusion) - vulnérabilité découverte par Antonius - w1sdom - bluedragonsec.com
Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.