CVE-2026-90110 in Linux
Sumário
de VulDB • 17/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
inetpeer: randomizar a comparação de nós da árvore RB usando SipHash
O sistema de limitação de taxa (rate limiting) inetpeer armazena entradas de peer em uma árvore Red-Black (RB-tree), com chaves determinísticas baseadas no endereço IP remoto. Como as buscas na árvore percorrem a estrutura RB-tree utilizando comparações lexicográficas padrão (inetpeer_addr_cmp), um adversário off-path pode prever exatamente a topologia da árvore e a sequência de nós traversados durante as buscas (a lista candidata gc_stack).
Ao combinar o traversal determinístico da árvore com garbage collection agressivo (acionado quando o tamanho da árvore excede inet_peer_threshold), um atacante pode forçar seletivamente a evicção dos nós inet_peer alvo. Quando um nó evicto é subsequentemente recriado ao receber um novo pacote, seu bucket de tokens de limitação de taxa (rate_tokens, rate_last) é resetado para sua capacidade total. Isso cria uma primitiva side-channel que permite aos atacantes off-path contornar os limites de taxa ICMP baseados em IP e inferir portas UDP abertas (semelhante a ataques estilo SAD DNS).
Mitigue isso randomizando a lógica de comparação dos nós da árvore RB usando SipHash com uma chave secreta (inetpeer_hash_key), inicializada via net_get_random_once(). Os nós são ordenados na árvore por SipHash(addr, key) em vez de endereços IP brutos. Como a chave secreta é desconhecida para entidades externas, o layout da árvore e os caminhos de traversal das buscas tornam-se imprevisíveis para adversários off-path, quebrando o gadget determinístico de evicção.
Armazene em cache (cache) o SipHash calculado de 64 bits (hash) na struct inet_peer e compute a hash alvo (dhash) uma única vez no início da função inet_getpeer() para evitar recalcular o SipHash a cada etapa do traversal da árvore RB.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.