CVE-2026-98372 in Linuxinformation

Résumé

par VulDB • 06/10/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

xfrm: iptfs : correction d'une lecture hors limites (OOB) de la pile dans iptfs_skb_reset_frag_walk()

iptfs_skb_reset_frag_walk() avance vers le fragment contenant @offset à l'aide d'une boucle non bornée :

while (offset >= walk->past + walk->frags[walk->fragi].len)
walk->past += walk->frags[walk->fragi++].len;

La variable walk->fragi est incrémentée et walk->frags[walk->fragi] est déréférencé sans jamais vérifier fragi par rapport à walk->nr_frags. Lorsque l'offset demandé se situe au-delà ou correspond à la longueur totale couverte par les fragments de la promenade (walk), fragi dépasse nr_frags et sort du tableau frags[MAX_SKB_FRAGS + 1] fixe situé sur la pile, entraînant une lecture hors limites dans la mémoire de la pile.

Les deux appelants se comportent différemment : iptfs_skb_add_frags() protège déjà contre ce cas avec

if (!walk->nr_frags || offset >= walk->total + walk->initial_offset) return len;

mais iptfs_skb_can_add_frags() ne dispose pas de cette protection et appelle iptfs_skb_reset_frag_walk() inconditionnellement, effectuant ainsi une promenade hors limites. Sa propre vérification des bornes "fragi nr_frags" s'exécute trop tard pour empêcher la lecture.

Ce cas est accessible depuis le chemin de réception : un payload IP-TFS (AGGFRAG) fabriqué et délivré à une SA IPTFS entraîne l'appel de iptfs_reassem_cont() -> iptfs_skb_can_add_frags() avec un offset supérieur au total des fragments, par exemple :

BUG: KASAN: stack-out-of-bounds in iptfs_skb_reset_frag_walk+0x235/0x250 Read of size 4 at addr ffff888008ad7210 by task repro/345 iptfs_skb_reset_frag_walk+0x235/0x250 net/xfrm/xfrm_iptfs.c:392 iptfs_skb_can_add_frags+0x155/0x310 net/xfrm/xfrm_iptfs.c:420 iptfs_reassem_cont+0xcf8/0x1140 net/xfrm/xfrm_iptfs.c:902 iptfs_input_ordered+0x552/0x670 net/xfrm/xfrm_iptfs.c:1280 iptfs_input+0x3d6/0xde0 net/xfrm/xfrm_iptfs.c:1741 xfrm_input+0x282f/0x6140 net/xfrm/xfrm_input.c:700 xfrm4_esp_rcv+0x93/0x120 net/ipv4/xfrm4_protocol.c:104 ip_rcv+0x278/0x2d0 net/ipv4/ip_input.c:612

Ajoutez à iptfs_skb_can_add_frags() la même protection initiale que celle dont dispose déjà iptfs_skb_add_frags(), afin que la promenade ne soit jamais engagée avec un offset hors limites. Lorsqu'elle se déclenche, l'appelant revient au chemin linéaire et de copie existant, qui est sûr.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Réserver

25/09/2026

Divulgation

06/10/2026

Modérer

accepté

Entrée

VDB-414209

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!