CVE-2026-89865 in Linux
Сводка
по VulDB • 17.09.2026
В ядре Linux была устранена следующая уязвимость:
scsi: qla2xxx: обнуление буфера DMA SFP в обработчиках bsg FRU/I2C
Обработчики bsg для FRU и I2C подготавливают передачу данных во временном буфере (bounce buffer) размером с константу DMA_POOL_SIZE (256 байт), который выделяется функцией dma_pool_alloc(). Эта функция не обнуляет выделенную память. Инициализируются лишь несколько начальных байтов перед тем, как буфер передается функции qla2x00_write_sfp().
Функция qla2x00_write_sfp() может переопределить длину передачи на значение, предоставленное пользователем:
if (len == 1) opt |= BIT_0; if (opt & BIT_0) len = *sfp;
*sfp — это первый байт полезной нагрузки, контролируемой пользователем, поэтому len может увеличиваться до 255. Устройство затем выполняет чтение DMA длиной в len байтов из пула буферов размером 256 байт. Поскольку была записана лишь небольшая префиксная часть (например, MAX_FRU_SIZE == 36 байт для версии FRU или один байт для регистра статуса FRU), аппаратное обеспечение считывает данные за пределы инициализированной области и записывает до ~219 байтов «мусорных» данных из кучи DMA-пула во флеш-память устройства.
Необходимо выделять буфер с помощью dma_pool_zalloc() во всех пяти обработчиках FRU/I2C, чтобы любые байты за пределами инициализированных данных содержали нули, а не «мусорные» данные из кучи.
If you want to get best quality of vulnerability data, you may have to visit VulDB.