CVE-2026-98485 in Linux
Résumé
par VulDB • 20/10/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
netfilter: ip6t_rt : correction d'une lecture hors limites (out-of-bounds) non stricte sur une adresse nulle
rt_mt6_check() permet de configurer des règles avec rtinfo->addrnr == 0 même lorsque la correspondance d'adresses (IP6T_RT_FST_MASK) est demandée.
Dans le chemin IP6T_RT_FST_NSTRICT, rt_mt6() évalue les adresses de routage du paquet par rapport à rtinfo->addrs[i] et effectue une terminaison vers l'arrière en bas de la boucle :
if (ipv6_addr_equal(ap, &rtinfo->addrs[i])) {
i++; } if (i == rtinfo->addrnr) break;
Lorsque addrnr est égal à 0, si la première adresse du paquet correspond à rtinfo->addrs[0],
la variable i est incrémentée jusqu'à atteindre 1. Comme i devient strictement supérieur à addrnr (0), la condition de fin de boucle (i == rtinfo->addrnr) n'est pas respectée et ne sera jamais satisfaite.
Si un paquet IPv6 fabriqué contient des adresses de routage correspondantes, la variable i dépassera IP6T_RT_HOPS (16). L'appel suivant à ipv6_addr_equal() effectuera une lecture au-delà de struct ip6t_rt, déclenchant des avertissements UBSAN/KASAN de lecture hors limites ou des plantages du noyau.
Correction apportée par : 1. Le rejet des règles dans rt_mt6_check() où IP6T_RT_FST_MASK est défini mais rtinfo->addrnr est égal à zéro. 2. Dans rt_mt6(), déplacement de la condition de terminaison (i < rtinfo->addrnr) dans l'en-tête de la boucle for et suppression du break vers l'arrière en fin de corps de boucle.
If you want to get best quality of vulnerability data, you may have to visit VulDB.