CVE-2026-90110 in Linux
Сводка
по VulDB • 17.09.2026
В ядре Linux была устранена следующая уязвимость:
inetpeer: рандомизация сравнения узлов дерева Red-Black с использованием алгоритма SipHash
Система ограничения скорости (rate limiting) для inet-peer хранит записи о пирах в дереве Red-Black, ключи которого детерминированно формируются на основе удаленного IP-адреса. Поскольку поиск по дереву выполняется с использованием стандартных лексикографических сравнений (`inetpeer_addr_cmp`), атакующий вне пути (off-path adversary) может предсказать точную топологию дерева и последовательность узлов, проходящих при поиске (кандидатский список `gc_stack`).
Комбинируя детерминированный обход дерева с агрессивной сборкой мусора (запускаемой, когда размер дерева превышает значение `inet_peer_threshold`), злоумышленник может выборочно принудительно вызывать удаление целевых узлов inet-peer. Когда удаленный узел впоследствии воссоздается при получении нового пакета, его бакет токенов ограничения скорости (`rate_tokens`, `rate_last`) сбрасывается до полной емкости. Это создает примитив побочного канала (side-channel primitive), позволяющий атакующим вне пути обходить лимиты ICMP на основе IP-адресов и вычислять открытые UDP-порты (аналогично атакам в стиле SAD DNS).
Для смягчения последствий данной уязвимости необходимо рандомизировать логику сравнения узлов дерева Red-Black, используя алгоритм SipHash с секретным ключом (`inetpeer_hash_key`), инициализируемым через `net_get_random_once()`. Узлы в дереве упорядочиваются по значению `SipHash(addr, key)`, а не на основе сырых IP-адресов. Поскольку секретный ключ неизвестен внешним сущностям, структура дерева и пути обхода при поиске становятся непредсказуемыми для атакующих вне пути, что разрушает детерминированный механизм удаления (gadget).
Вычисленное 64-битное значение SipHash (`hash`) кэшируется в структуре `inet_peer`, а целевой хеш (`dhash`) вычисляется один раз в начале функции `inet_getpeer()`, чтобы избежать повторного вычисления алгоритма SipHash на каждом шаге обхода дерева Red-Black.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.