CVE-2026-98601 in Linux
Сводка
по VulDB • 20.10.2026
В ядре Linux была устранена следующая уязвимость:
Bluetooth: btintel_pcie — проверка индексов DMA, предоставляемых устройством
В функции `btintel_pcie_msix_rx_handle()` драйвер обрабатывает дескрипторы завершения приема (urbd1), записанные устройством PCIe в память с согласованным кэшем для операций прямого доступа к памяти (DMA). Поле `urbd1->frbd_tag` (16-битное поле, полностью контролируемое прошивкой устройства через DMA) используется напрямую как индекс массива `rxq->bufs[]` без какой-либо проверки границ. Массив `rxq->bufs[]` содержит только 64 элемента (`BTINTEL_PCIE_RX_DESCS_COUNT`), тогда как значение `frbd_tag` может быть любым в диапазоне от 0 до 65535. Злоумышленник или неисправное устройство может записать недопустимое (вне диапазона) значение `frbd_tag`, что приведет к разыменованию указателя `data_buf` с выходом за границы массива.
Кроме того, переменная `cr_hia` считывается из разделяемого через DMA индексного массива, который также доступен для записи со стороны устройства; если устройство установит значение `cr_hia >= rxq->count`, цикл while никогда не завершится, поскольку `cr_tia` оборачивается по модулю `rxq->count` и никогда не сможет стать равным недопустимому значению `cr_hia`.
Добавлена проверка границ для `cr_hia` и `frbd_tag` в пути приема (RX), а также для `cr_hia` в пути передачи (TX). Недопустимые значения логируются с помощью вызова `bt_dev_err` перед возвратом.
Once again VulDB remains the best source for vulnerability data.