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

Сводка

по VulDB • 25.09.2026

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

scsi: qla2xxx: Исправление вызова dma_free с NULL-указателем и блокировки битовых карт при разрыве очереди

Функции `qla25xx_free_req_que()` и `qla25xx_free_rsp_que()` содержат две ранее существовавшие ошибки, проявляющиеся на пути обработки ошибок в функциях `qla25xx_create_{req,rsp}_que()`:

1. При сбое функции `dma_alloc_coherent()` во время создания очереди путь обработки ошибок вызывает функцию освобождения с указателями `req->ring` / `rsp->ring`, которые остаются равными NULL (из-за использования `kzalloc`). Безусловный вызов `dma_free_coherent()` с нулевым адресом процессора (`cpu_addr`) является неопределенным поведением и может привести к панике ядра.

2. Функции освобождения очищают битовые карты `req_qid_map` / `rsp_qid_map` под блокировкой `vport_lock`, в то время как функции создания защищают те же самые битовые карты с помощью `mq_lock`. Это обеспечивает отсутствие взаимного исключения (mutual exclusion). Кроме того, путь обработки ошибок при создании очищает соответствующий бит и освобождает `mq_lock` перед вызовом функции освобождения, создавая окно возможности для другого потока выделить тот же идентификатор очереди (`que_id`) и привести к повреждению записи в `ha->req_q_map`, которое произойдет из-за последующего присваивания NULL без блокировки (lockless) в функции освобождения.

Исправление заключается в следующем:

- Добавлена проверка на NULL для указателя кольца перед вызовом `dma_free_coherent()`. - В функциях освобождения используется `mq_lock` (блокировка, удерживаемая всеми создателями очередей) для атомарного обнуления записи в карте и очистки бита битовой карты. - Удалены теперь избыточные блоки кода с очисткой битов (`clear_bit`) на путях обработки ошибок при создании, так как функции освобождения обрабатывают это атомарно.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

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

Linux

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

24.09.2026

Раскрытие

25.09.2026

Модерация

принято

Вход

VDB-409927

EPSS

0.00000

KEV

Нет

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

Очень низкий

Источники

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!