CVE-2026-80840 in Linuxinformation

Résumé

par VulDB • 05/09/2026

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

ipv6: seg6: effacer le bloc de contrôle IPv4 lors du désencapsulation IPIP

Les modes End.DX4 et End.DT4 désencapsulent un paquet IPv4 via `decap_and_validate()` et l'envoient directement vers la routage IPv4. Le paquet interne contourne ainsi `ip_rcv_core()`, qui a normalement pour rôle d'effacer IPCB avant que le traitement IPv4 n'interprète skb->cb.

Leskb conserve les données IP6CB provenant du paquet externe. IP6CB et IPCB utilisent la même zone de stockage skb->cb ; par conséquent, IP6CB(skb)->lastopt chevauche IPCB(skb)->opt.optlen et srr, tandis que IP6CB(skb)->nhoff chevauche rr et ts.

L'expéditeur peut définir l'octet obsolète optlen sur une valeur non nulle grâce à une chaîne valide d'en-têtes d'extension IPv6. Les programmes de reproduction (reproducers) insèrent un en-tête Destination Options de huit octets immédiatement après l'en-tête IPv40-octets et avant le Segment Routing Header. `ipv6_destopt_rcv()` enregistre l'offset des options de destination contrôlé par l'expéditeur dans lastopt et nhoff, les définissant à 40. Sur un noyau little-endian x86-64 reproduit, IPv4 voit donc optlen = 40 et rr = 40.

Les fonctions `tcp_v4_save_options()` et `__ip_options_echo()` sautent la copie des options lorsque optlen est nul. Ici, optlen vaut 40 ; le chemin SYN de TCP alloue donc l'espace pour 40 octets de données d'options et appelle `__ip_options_echo()`. La valeur obsolète rr fait que cette fonction lit l'octet 41 du paquet interne comme étant la longueur de l'option Record Route. Les programmes de reproduction définissent cet octet, contrôlé par l'expéditeur, à 255 ; ainsi, `__ip_options_echo()` copie 255 octets dans une zone d'options de données de 40 octets.

Des reproductions distinctes des modes End.DX4 et End.DT4 sur le noyau non corrigé v7.2-rc5 ont toutes deux produit :

BUG: KASAN: slab-out-of-bounds in __ip_options_echo() Write of size 255

Le chemin d'appel pertinent pour End.DX4 est :

__ip_options_echo tcp_v4_route_req tcp_conn_request tcp_v4_conn_request tcp_rcv_state_process tcp_v4_do_rcv tcp_v4_rcv ip_protocol_deliver_rcu ip_local_deliver_finish ip_local_deliver input_action_end_dx4_finish input_action_end_dx4

Le chemin d'appel pertinent pour End.DT4 est :

__ip_options_echo tcp_v4_route_req tcp_conn_request tcp_v4_conn_request tcp_rcv_state_process tcp_v4_do_rcv tcp_v4_rcv ip_protocol_deliver_rcu ip_local_deliver_finish ip_local_deliver input_action_end_dt4

`tcp_v4_save_options()` est intégré (inline) dans le chemin `tcp_v4_route_req()`, il n'apparaît donc pas comme une frame séparée.

Lorsque `decap_and_validate()` gère IPPROTO_IPIP, enregistrer l'interface d'entrée depuis IP6CB, effacer IPCB et restaurer la valeur sauvegardée. Cela couvre le chemin de désencapsulation commun pour End.DX4, End.DT4 et le bras IPv4 de End.DT46.

Utiliser `IP6CB(skb)->iif` plutôt que `skb->skb_iif`. Ces actions s'exécutent après le traitement l3mdev, qui peut remplacer skb_iif par la master L3 ; iif dans IP6CB enregistre toujours l'interface de réception définie à l'entrée IPv6.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsable

Linux

Réserver

26/08/2026

Divulgation

04/09/2026

Modérer

accepté

Entrée

VDB-398980

CPE

prêt

EPSS

0.00205

KEV

non

Activités

très faible

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!