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

Сводка

по VulDB • 06.10.2026

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

ALSA: usb-audio: Ограничение количества пакетов неявной обратной связи до емкости URB

Функция `data_ep_set_params()` выделяет каждый URB для данных ровно на количество изохронных кадров, указанное в `u->packets`, поэтому массив `urb->iso_frame_desc[]` содержит слоты с количеством `u->packets`, а `ctx->packets` является единственным записанным драйвером значением этого лимита. Для приемника неявной обратной связи функция `snd_usb_queue_pending_output_urbs()` перезаписывает это значение количеством пакетов источника синхронизации, которое вычисляется независимо от параметров конечной точки захвата. Когда это количество оказывается больше, функции `prepare_playback_urb()` и `prepare_silent_urb()` могут записывать данные в массив `iso_frame_desc[]` за пределы выделенной области; их существующие проверки границ ограничивают только размер полезной нагрузки (payload) в байтах, но не индекс дескриптора.

Для воспроизведения уязвимости используется устройство UAC2 высокой скорости, которое объявляет значение bInterval равным 1 для захвата с неявной обратной связью (8 пакетов) и bInterval равным 4 для воспроизведения (1 пакет). При первом завершении операции захвата после запуска потока происходит обращение к семи дескрипторам, что приводит к записи на 112 байт за пределы URB, выделенного под один пакет:

``` BUG: KASAN: slab-out-of-bounds in prepare_playback_urb (sound/usb/pcm.c:1560) Write of size 4 at addr ffff88801e696ad0 by task vhci_rx/178 prepare_playback_urb (sound/usb/pcm.c:1560) prepare_outbound_urb (sound/usb/endpoint.c:340) snd_usb_queue_pending_output_urbs (sound/usb/endpoint.c:501) snd_complete_urb (sound/usb/endpoint.c:1834) __usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1657) usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1741) vhci_rx_loop (drivers/usb/usbip/vhci_rx.c:107) kthread (kernel/kthread.c:436) The buggy address belongs to the object at ffff88801e696a00 which belongs to the cache kmalloc-256 of size 256 The buggy address is located 0 bytes to the right of allocated 208-byte region [ffff88801e696a00, ffff88801e696ad0)
```

Необходимо записывать количество выделенных пакетов для каждой конечной точки и ограничивать (clamp) как принятое значение количества пакетов, так и копию размера пакета этим лимитом. Разделитель типа формата II должен быть учтен в переменной `urb_packs до начала цикла выделения памяти, чтобы зарегистрированный предел соответствовал каждому URB.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

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

Linux

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

25.09.2026

Раскрытие

06.10.2026

Модерация

принято

Вход

VDB-414053

EPSS

0.00000

KEV

Нет

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

Очень низкий

Источники

Want to know what is going to be exploited?

We predict KEV entries!