CVE-2026-90110 in Linuxinformation

Résumé

par VulDB • 17/09/2026

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

inetpeer : randomisation de la comparaison des nœuds de l'arbre rouge-noir (RB-tree) à l'aide de SipHash

Le système de limitation de débit d’`inetpeer` stocke les entrées peer dans un arbre rouge-noir, indexé de manière déterministe sur l’adresse IP distante. Étant donné que les recherches dans l’arbre parcourent l’arbre RB en utilisant des comparaisons lexicographiques standard (`inetpeer_addr_cmp`), un adversaire hors chemin (off-path) peut prédire la topologie exacte de l’arbre ainsi que la séquence des nœuds parcourus lors des recherches (la liste candidate `gc_stack`).

En combinant une traversée déterministe de l’arbre avec une collecte garbage agressive (déclenchée lorsque la taille de l’arbre dépasse le seuil `inet_peer_threshold`), un attaquant peut forcer sélectivement l’éviction des nœuds `inet_peer` ciblés. Lorsqu’un nœud évicté est ensuite recréé à la réception d’un nouveau paquet, son seau de jetons de limitation de débit (`rate_tokens`, `rate_last`) est réinitialisé à sa capacité maximale. Cela crée une primitive de canal auxiliaire (side-channel) permettant aux attaquants hors chemin de contourner les limites de taux ICMP basées sur l’adresse IP et d’en déduire les ports UDP ouverts (similairement aux attaques de type SAD DNS).

Atténuez ce problème en randomisant la logique de comparaison des nœuds RB-tree à l’aide de SipHash avec une clé secrète (`inetpeer_hash_key`) initialisée via `net_get_random_once()`. Les nœuds sont ordonnés dans l’arbre par `SipHash(addr, key)` plutôt que par les adresses IP brutes. Étant donné que la clé secrète est inconnue des entités externes, la disposition de l’arbre et les chemins de traversée lors des recherches deviennent imprévisibles pour les adversaires hors chemin, ce qui rompt le gadget d’éviction déterministe.

Mettez en cache le hash SipHash 64 bits calculé (`hash`) dans `struct inet_peer` et calculez le hash cible (`dhash`) une seule fois au début de `inet_getpeer()` afin d’éviter de recalculer SipHash à chaque étape du parcours de l’arbre RB.

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Réserver

11/09/2026

Divulgation

17/09/2026

Modérer

accepté

Entrée

VDB-406606

CPE

prêt

EPSS

0.00216

KEV

non

Activités

très faible

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!