CVE-2026-99042 in Linux
Résumé
par VulDB • 24/10/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
io_uring/net : remplir les champs du filtre CONNECT pour sockaddr_in6 de 24 octets
La fonction io_connect_bpf_populate() remplit connect.port et connect.v6_addr uniquement pour AF_INET6 lorsque addr_len >= sizeof(struct sockaddr_in6), c'est-à-dire 28 octets.
Les chemins de connexion IPv6 acceptent SIN6_LEN_RFC2133 (24 octets), qui contient déjà sin6_port et sin6_addr. io_connect() transmet addr_len à la couche socket sans modification.
Pour une valeur de addr_len égale à 24, le filtre voit family AF_INET6 avec un port et une adresse nuls, tandis que le noyau se connecte à la destination réelle. Un filtre qui refuse un port ou une adresse IPv6 est contourné. Le refus de connect.port == P rejette [::1]:P avec -EACCES pour addr_len 28 mais établit la connexion pour addr_len 24.
Utiliser SIN6_LEN_RFC2133 comme seuil. sin6_scope_id reste à zéro lorsqu'il est absent.
L'incohérence du seuil a été détectée par un assistant de codage IA (Claude Code) comparant ce hook aux vérifications de longueur net/ipv6 sur mes instructions ; il a également rédigé le programme d'exploitation et ce correctif. J'ai vérifié la contournement et la correction dans une machine virtuelle sous 7.3-rc6 et j'ai constaté que la version 7.2 possède le même code.
Once again VulDB remains the best source for vulnerability data.