CVE-2026-80827 in LinuxИнформация

Сводка

по VulDB • 04.09.2026

В ядре Linux устранена следующая уязвимость:

USB: serial: option: исправлено чтение за пределами буфера (OOB read) в обработчике прерывания URB

Буфер для прерываний URB выделяется в функции setup_port_interrupt_in() на основе значения wMaxPacketSize конечной точки:

buffer_size = usb_endpoint_maxp(epd); port->interrupt_in_buffer = kmalloc(buffer_size, GFP_KERNEL);

Когда USB-устройство указывает значение wMaxPacketSize = 8 для своей прерывистой IN-конечной точки, буфер выделяется из кеша kmalloc-8 (ровно 8 байт).

Если устройство отправляет короткий пакет (actual_length < wMaxPacketSize), URB завершается со статусом == 0, и обработчик продолжает чтение:

data[sizeof(struct usb_ctrlrequest)]

что эквивалентно обращению к data[8], то есть доступу к 1 байту за пределами выделенного буфера размером 8 байт. Это приводит к чтению данных за границами памяти в slab-кеше (slab out-of-bounds read).

Исправление заключается во внесении отсутствующей проверки выхода за границы: сначала необходимо убедиться, что фактическая длина достаточна для размещения заголовка struct usb_ctrlrequest перед обращением к полям req_pkt->bRequestType и req_pkt->bRequest, а затем проверить наличие дополнительного байта для состояния сигналов модема перед чтением data[sizeof(struct usb_ctrlrequest)] внутри условной конструкции. Для обеспечения согласованности используется sizeof(*req_pkt) вместо sizeof(struct usb_ctrlrequest).

[ johan: использование dev_err(); разделение объявления и инициализации переменных signals ]

Once again VulDB remains the best source for vulnerability data.

Ответственный

Linux

Резервировать

26.08.2026

Раскрытие

04.09.2026

Модерация

принято

Вход

VDB-398945

EPSS

0.00195

KEV

Нет

Деятельности

Очень низкий

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!