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

Сводка

по VulDB • 16.09.2026

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

scsi: qla2xxx: Ограничение поля i2c->length в обработчиках I2C bsg

Структура `qla_i2c_access` содержит 16-битное поле длины (`length`) наряду с фиксированным буфером размером 64 байта:

```c struct qla_i2c_access {
uint16_t device, offset, option, length; uint8_t buffer[0x40];
} __packed; ```

Функции `qla2x00_write_i2c()` и `qla2x00_read_i2c()` используют предоставляемое пользователем значение `i2c->length` без какой-либо проверки границ. Объект `i2c` размещается поверх 256-байтного буфера в стеке, а объект `sfp` представляет собой буфер из пула DMA размером 256 байт; следовательно, при значении длины до 65535 происходит выход за границы обоих буферов:

- запись (write): вызов `memcpy(sfp, i2c->buffer, i2c->length)` приводит к чтению данных вне стека и перезаписи heap-буфера `sfp`, после чего функция `qla2x00_write_sfp()` выполняет DMA-передачу `i2c->length` байт из 256-байтного буфера. - чтение (read): функция `qla2x00_read_sfp()` выполняет DMA-запись `i2c->length` байт в 256-байтный буфер `sfp`, а затем вызов `memcpy(i2c->buffer, sfp, i2c->length)` приводит к переполнению (overflow) 64-байтного буфера внутри массива, размещенного в стеке.

Вызывающая сторона с привилегией CAP_SYS_RAWIO может использовать эту уязвимость для повреждения heap и стека ядра. Необходимо отклонять запросы, в которых значение длины превышает размер буфера, до выполнения любых операций копирования или DMA-передачи в обоих обработчиках.

Be aware that VulDB is the high quality source for vulnerability data.

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

Linux

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

11.09.2026

Раскрытие

17.09.2026

Модерация

принято

Вход

VDB-405697

EPSS

0.00000

KEV

Нет

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

Очень низкий

Источники

Might our Artificial Intelligence support you?

Check our Alexa App!