CVE-2026-90076 in Linux
Сводка
по VulDB • 17.09.2026
В ядре Linux была устранена следующая уязвимость:
net/sched: fq: добавлены проверки на переполнение для кванта и начального кванта
Функция `fq_init()` вычисляет значения `quantum = 2 * psched_mtu()` и `initial_quantum = 10 * psched_mtu()` без проверки на переполнение. Устройство с большим значением MTU (например, устройство dummy с параметром max_mtu == 0, принимающее MTU 2147483634) заставляет функцию `psched_mtu()` возвращать значение 0x80000000; операции умножения на 2 и 10 приводят к переполнению со сдвигом в ноль при арифметике 32-битных чисел, поэтому `q->quantum` становится равным 0. Затем в функции `fq_dequeue()` цикл пополнения кредита (credit-refill) добавляет 0 к значению `f->credit` (которое остается <= 0), и происходит бесконечная циклическая обработка под блокировкой qdisc, что приводит к soft lockup (программному зависанию).
Значение функции `psched_mtu()` ограничивается диапазоном [1, 1 << 20] перед выполнением умножения, чтобы избежать переполнения результата; затем результат дополнительно ограничивается значением 1 << 20, что соответствует границам, уже применяемым к параметру TCA_FQ_QUANTUM в функции `fq_change()`.
Условия для воспроизведения уязвимости: устройство с таким большим MTU (плюс hard_header_len), при котором выражение `2 * psched_mtu()` приводит к переполнению (например, устройство dummy с max_mtu == 0, принимающее MTU 2147483634). Требуется наличие CAP_NET_ADMIN в пространстве имен пользователя.
Once again VulDB remains the best source for vulnerability data.