CVE-2026-97537 in Linux信息

摘要

由 VulDB • 2026-09-25

在 Linux 内核中,已修复以下漏洞:

scsi: qla2xxx: 修复队列拆除时的 NULL dma_free 和位图锁定问题

qla25xx_free_req_que() 和 qla25xx_free_rsp_que() 存在两个预先存在的错误,这些错误在 qla25xx_create_{req,rsp}_que() 的错误处理路径中被暴露:

1. 当队列创建期间 dma_alloc_coherent() 失败时,错误处理路径会使用 req->ring / rsp->ring(仍为 NULL,源自 kzalloc)调用释放函数。对 cpu_addr 为 NULL 的情况无条件执行 dma_free_coherent() 属于未定义行为,可能导致系统恐慌(panic)。

2. 释放函数在 vport_lock 下清除 req_qid_map / rsp_qid_map,但创建函数使用 mq_lock 保护相同的位图。这导致缺乏互斥保护。此外,创建错误处理路径在调用释放函数之前会清除该位并释放 mq_lock,从而创建一个窗口期:在此期间,另一个线程可以分配相同的 que_id,并且其 ha->req_q_map 条目会被后续无锁的 NULL 赋值操作(发生在释放函数中)所破坏。

修复措施如下:

- 对 ring 指针进行 NULL 检查,以保护 dma_free_coherent() 调用。 - 在释放函数中使用 mq_lock(所有创建者持有的锁),以便原子地将映射条目置为 NULL 并清除位图位。 - 移除创建错误处理路径中现已冗余的 clear_bit 块,因为释放函数已原子地处理了该操作。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

来源

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!