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

Published Sep 25, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

scsi: qla2xxx: Serialize NVMe unsol ctx list with a per-fcport lock

The fcport->unsolctxhead list is modified from several contexts without a common lock. Entries are added in qla2xxxprocesspurlsiocb() from the response queue ISR (under the qpair qplock), while they are removed from qla2xxxprocesspurlspkt() (DPC/purex worker), qlanvmexmtlsrsp() (NVMe-FC transport callback) and qlanvmereleaselsrspcmdkref() (SRB completion). The qpair qplock 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, unsolctxlock, initialized in qla2x00allocfcport(), and take it around every listaddtail()/listdel() on unsolctxhead. The add nests under the existing qplock; no delete path takes qplock, so the lock order is consistent and deadlock free.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 25, 2026
CVE Published
via MITRE·10:21 AM
Data Sourced
via MITRE·10:21 AM
DescriptionSeverity
Data Sourced
via NVD·11:17 AM
DescriptionSeverity

Frequently Asked Questions

1

Which systems are exposed to this race condition?

Systems using the Linux kernel qla2xxx SCSI driver with NVMe-FC unsolicited context processing are exposed. The race is specifically relevant to multiqueue adapters, where different queue pairs can concurrently add entries for the same FC port.

2

What conditions are required to trigger the issue?

Concurrent access to an FC port's unsol_ctx_head list is required. Entries must be added from the response-queue interrupt context while one or more removal paths run from the DPC/purex worker, NVMe-FC transport callback, or SRB completion context.

3

What can happen if the issue is triggered?

Concurrent additions and removals, or simultaneous removals, can corrupt the list pointers in the per-FC-port unsolicited-context list.

4

What mitigation is described if an updated kernel is not immediately available?

The provided data does not describe an operational workaround. The fix adds a dedicated per-FC-port spinlock around every addition to and deletion from the affected list.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203