CVE: CVE-2026-72483
Продукт: Linux Kernel
Дата публикации: 15.08.2026
Критичность: не определена
CVSS: нет данных
EPSS: 0,25%; процентиль 16,42%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В драйвере USB-хоста max3421 для Linux Kernel обнаружена уязвимость, позволяющая вызвать неопределенное поведение (shift-out-of-bounds) при обработке запросов к виртуальному корневому хабу. Локальный пользователь с доступом к устройству может повредить внутреннее состояние порта, обойдя проверки целостности.
Основные характеристики
Ошибка локализована в функции
max3421_hub_control() файла drivers/usb/host/max3421-hcd.c. При обработке запросов ClearPortFeature и SetPortFeature код выполняет побитовый сдвиг без проверки ширины типа данных. Это приводит к повреждению структуры port_status, включая биты изменений, которые обычно защищены. Уязвимость требует локального доступа к интерфейсу USB-хаба. Оценка EPSS составляет 0.25%, что указывает на низкую статистическую вероятность эксплуатации.Какие продукты и версии затронуты
Linux Kernel с активным драйвером
max3421-hcd (поддержка чипа MAX3421E). Уязвимость присутствует в версиях ядра, не содержащих исправление, добавляющее проверку value >= 32. Затронуты системы, использующие USB-хабы на базе MAX3421E или эмуляцию такого хаба.Причина уязвимости
Функция
max3421_hub_control() использует параметр value из запроса пользователя как количество позиций для сдвига влево (1 << value). Исходный код не проверял, превышает ли value ширину типа port_status (32 бита). При value >= 32 операция вызывает неопределенное поведение языка C, что приводит к непредсказуемому изменению битовой маски статуса порта.Как работает атака
Атакующий открывает файл устройства
/dev/bus/usb/.../001 и отправляет ioctl с командой USBDEVFS_CONTROL. В поле wValue передается значение >= 32. Ядро передает это значение в max3421_hub_control(), где происходит сдвиг за границами. Результат — произвольное изменение бит в port_status, включая биты, отвечающие за фиксацию изменений состояния. Это позволяет обойти внутренние проверки драйвера и рассинхронизировать состояние хаба.Условия успешной эксплуатации
- Локальный доступ к системе с правами на чтение/запись к
/dev/bus/usb/.../001(обычно группаusbилиroot).
- Наличие активного USB-хаба на базе MAX3421E.
- Загруженный модуль
max3421-hcd.
- Отсутствие патча, ограничивающего
valueдиапазоном 0-31.
Возможный сценарий атаки
Локальный процесс открывает
/dev/bus/usb/.../001 и отправляет запрос SetPortFeature или ClearPortFeature с wValue = 32. Ядро выполняет сдвиг за границами, повреждая port_status. Внутренняя логика драйвера начинает работать с некорректными данными, что может привести к зависанию порта, ложным срабатываниям обработчиков или отказу в обслуживании. Прямая эскалация привилегий не подтверждена.Есть ли публичный эксплойт
Публичный эксплойт или PoC не зафиксирован. Уязвимость обнаружена с помощью инструмента символьного выполнения на базе KLEE. Механика ошибки проста и воспроизводима локально, но готовых инструментов для массовых атак нет.
Признаки эксплуатации
Специфичные IOC отсутствуют. Общие признаки:
- Ошибки в
dmesg, связанные с драйверомmax3421.
- Аномальное поведение USB-портов (отключение/подключение без физического вмешательства).
- Локальные процессы, обращающиеся к
/dev/bus/usb/.../001с нестандартными параметрамиioctl.
- Зависания системы при использовании USB-хаба MAX3421.
Как обнаружить атаку
- Мониторинг логов ядра (
dmesg,/var/log/kern.log) на предмет ошибокmax3421.
- Аудит прав доступа к
/dev/bus/usb/*.
- Использование
auditdдля отслеживания вызововioctlсUSBDEVFS_CONTROL.
- Проверка целостности конфигурации USB-хабов.
Как проверить свою версию
Проверьте версию ядра и наличие модуля:
Bash:
uname -r
uname -a
cat /proc/version
lsmod | grep max3421
Если модуль загружен, система потенциально уязвима, если версия ядра не содержит исправления.
Исправление
Установите последние обновления ядра Linux. Патч добавляет проверку
if (value >= 32) goto error; перед операциями сдвига. Обновление должно быть выполнено на всех системах с USB-хабами MAX3421E. После обновления перезагрузите систему.Временные меры защиты
- Отключите модуль
max3421-hcd, если использование хаба не критично:
Bash:rmmod max3421-hcd
Добавьтеblacklist max3421-hcdв/etc/modprobe.d/.
- Ограничьте доступ к
/dev/bus/usb/.../001только дляroot.
- Используйте AppArmor/SELinux для ограничения вызовов
ioctlк USB-устройствам.
Как проверить устранение уязвимости
Проверьте версию ядра:
Bash:
uname -r
Убедитесь, что модуль работает корректно:
Bash:
lsmod | grep max3421
dmesg | grep max3421
Отсутствие ошибок в логах подтверждает применение исправления.
Вывод
CVE-2026-72483 — локальная уязвимость в драйвере USB-хаба MAX3421E, позволяющая повредить состояние ядра через невалидированный сдвиг. Риск массового использования низок, но локальные атакующиес доступом к USB могут эксплуатировать ошибку. Обновление ядра обязательно. Временное отключение модуля снижает поверхность атаки.
Официальные источники
- NVD — CVE-2026-72483
- FIRST EPSS — CVE-2026-72483
- usb: host: max3421: Fix shift-out-of-bounds in max3421_hub_control() - kernel/git/stable/linux.git - Linux kernel stable tree
- usb: host: max3421: Fix shift-out-of-bounds in max3421_hub_control() - kernel/git/stable/linux.git - Linux kernel stable tree
- usb: host: max3421: Fix shift-out-of-bounds in max3421_hub_control() - kernel/git/stable/linux.git - Linux kernel stable tree
- usb: host: max3421: Fix shift-out-of-bounds in max3421_hub_control() - kernel/git/stable/linux.git - Linux kernel stable tree
- usb: host: max3421: Fix shift-out-of-bounds in max3421_hub_control() - kernel/git/stable/linux.git - Linux kernel stable tree
- usb: host: max3421: Fix shift-out-of-bounds in max3421_hub_control() - kernel/git/stable/linux.git - Linux kernel stable tree
- usb: host: max3421: Fix shift-out-of-bounds in max3421_hub_control() - kernel/git/stable/linux.git - Linux kernel stable tree
- usb: host: max3421: Fix shift-out-of-bounds in max3421_hub_control() - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 16.08.2026 — Опубликована первая версия материала.
