GHSA-46XM-FGHF-R34F
Vulnerability from github – Published: 2026-09-25 12:31 – Updated: 2026-09-25 12:31In the Linux kernel, the following vulnerability has been resolved:
scsi: qla2xxx: Fix queue teardown NULL dma_free and bitmap locking
qla25xx_free_req_que() and qla25xx_free_rsp_que() have two pre-existing bugs exposed on the error path of qla25xx_create_{req,rsp}_que():
-
When dma_alloc_coherent() fails during queue creation, the error path calls the free function with req->ring / rsp->ring still NULL (from kzalloc). The unconditional dma_free_coherent() with a NULL cpu_addr is undefined behavior and can panic.
-
The free functions clear req_qid_map / rsp_qid_map under vport_lock, but the create functions protect the same bitmaps with mq_lock. This provides no mutual exclusion. Additionally, the create error path clears the bit and releases mq_lock before calling the free function, creating a window where another thread can allocate the same que_id and have its ha->req_q_map entry clobbered by the subsequent lockless NULL assignment in the free function.
Fix by:
-
Guarding dma_free_coherent() with a NULL check on the ring pointer.
-
Using mq_lock (the lock held by all creators) in the free functions to atomically NULL the map entry and clear the bitmap bit.
-
Removing the now-redundant clear_bit blocks from the create error paths since the free functions handle it atomically.
{
"affected": [],
"aliases": [
"CVE-2026-97537"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-25T11:17:03Z",
"severity": null
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: qla2xxx: Fix queue teardown NULL dma_free and bitmap locking\n\nqla25xx_free_req_que() and qla25xx_free_rsp_que() have two pre-existing\nbugs exposed on the error path of qla25xx_create_{req,rsp}_que():\n\n 1. When dma_alloc_coherent() fails during queue creation, the error\n path calls the free function with req-\u003ering / rsp-\u003ering still NULL\n (from kzalloc). The unconditional dma_free_coherent() with a NULL\n cpu_addr is undefined behavior and can panic.\n\n 2. The free functions clear req_qid_map / rsp_qid_map under vport_lock,\n but the create functions protect the same bitmaps with mq_lock.\n This provides no mutual exclusion. Additionally, the create error\n path clears the bit and releases mq_lock before calling the free\n function, creating a window where another thread can allocate the\n same que_id and have its ha-\u003ereq_q_map entry clobbered by the\n subsequent lockless NULL assignment in the free function.\n\nFix by:\n\n - Guarding dma_free_coherent() with a NULL check on the ring pointer.\n\n - Using mq_lock (the lock held by all creators) in the free functions\n to atomically NULL the map entry and clear the bitmap bit.\n\n - Removing the now-redundant clear_bit blocks from the create error\n paths since the free functions handle it atomically.",
"id": "GHSA-46xm-fghf-r34f",
"modified": "2026-09-25T12:31:23Z",
"published": "2026-09-25T12:31:23Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-97537"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/34a40e0dff940ac5eba494a69b553ea571e24873"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/94fc0c5b45de2bf3a691619bcfd10b9a49fc647e"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/f35cb67f2092b49d7949065dd56895ed47238f22"
}
],
"schema_version": "1.4.0",
"severity": []
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.