CVE-2026-97537 in Linux
Sumário
de VulDB • 25/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
scsi: qla2xxx: Corrige o NULL no dma_free e o bloqueio de bitmap durante o teardown da fila
As funções `qla25xx_free_req_que()` e `qla25xx_free_rsp_que()` possuem dois bugs preexistentes expostos no caminho de erro do `qla25xx_create_{req,rsp}_que()`:
1. Quando a `dma_alloc_coherent()` falha durante a criação da fila, o caminho de erro chama a função de liberação com `req->ring` / `rsp->ring` ainda NULL (devido ao `kzalloc`). O `dma_free_coherent()` incondicional com um `cpu_addr` NULL é comportamento indefinido e pode causar panic.
2. As funções de liberação limpam o `req_qid_map` / `rsp_qid_map` sob a proteção do `vport_lock`, mas as funções de criação protegem os mesmos bitmaps com o `mq_lock`. Isso não oferece exclusão mútua. Além disso, o caminho de erro da criação limpa o bit e libera o `mq_lock` antes de chamar a função de liberação, criando uma janela onde outra thread pode alocar o mesmo `que_id` e ter sua entrada em `ha->req_q_map` sobrescrita pela subsequente atribuição NULL sem bloqueio na função de liberação.
Correção:
- Proteger o `dma_free_coherent()` com uma verificação NULL no ponteiro da ring (fila). - Usar o `mq_lock` (o lock mantido por todos os criadores) nas funções de liberação para zerar atomicamente a entrada do mapa e limpar o bit do bitmap. - Remover os blocos agora redundantes de clear_bit dos caminhos de erro de criação, já que as funções de liberação lidam com isso atomicamente.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.