Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Local in-kernel driver race (AV:L), needs a narrow concurrency window and NVMe-FC LS reject event (AC:H); integrity/availability from ring corruption, no confidentiality impact.
Primary rating from Vendor (Linux).
CVSS VectorVendor: Linux
Lifecycle Timeline
7DescriptionCVE.org
In the Linux kernel, the following vulnerability has been resolved:
scsi: qla2xxx: Hold qpair lock when sending NVMe LS reject
qla_nvme_ls_reject_iocb() allocates from and advances the request ring through __qla2x00_alloc_iocbs() (which assumes the hardware_lock is held) and qla2x00_start_iocbs() (which advances the ring and rings the request-in doorbell), but takes no lock itself. Two of its callers invoke it without the producer lock held:
- qla_nvme_xmt_ls_rsp(), the NVMe-FC .xmt_ls_rsp transport callback, on
its error path, and
- qla2xxx_process_purls_pkt(), run from the purex work/DPC context.
Both use ha->base_qpair, whose qp_lock_ptr is hardware_lock, so they can run concurrently with normal I/O submission on the base ring and corrupt the ring producer state, leading to duplicated or dropped commands. The third caller, qla2xxx_process_purls_iocb(), runs inside qla24xx_process_response_queue() with the qpair lock already held and is safe; that is also why the lock cannot be taken inside the helper itself (it would recursively re-acquire hardware_lock on the response path).
Take qp_lock_ptr around the two unlocked callers and document the helper as caller-locked. Both run in process context, so spin_lock_irqsave() is used and nothing in the locked region sleeps.
AnalysisAI
Concurrent NVMe-FC I/O submission in the Linux kernel's qla2xxx QLogic Fibre Channel driver can corrupt the hardware request-ring producer state, producing duplicated or dropped commands. The defect affects hosts running the qla2xxx driver with a QLogic FC HBA configured for NVMe-over-FC that uses ha->base_qpair; qla_nvme_ls_reject_iocb() advances the ring and rings the request-in doorbell via __qla2x00_alloc_iocbs() and qla2x00_start_iocbs() (both of which assume hardware_lock is held) but two of its callers, qla_nvme_xmt_ls_rsp() and qla2xxx_process_purls_pkt(), invoke it without holding qp_lock_ptr. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Requires a host running the Linux qla2xxx driver with a QLogic Fibre Channel HBA configured for NVMe-over-FC, using ha->base_qpair (whose qp_lock_ptr is hardware_lock). … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | This is a concurrency/locking defect (CWE-362 race condition) in the Linux kernel qla2xxx SCSI driver's NVMe-FC path: qla_nvme_ls_reject_iocb() advances the request ring and rings the producer doorbell (__qla2x00_alloc_iocbs / qla2x00_start_iocbs assume hardware_lock is held), but two callers invoke it without holding qp_lock_ptr, allowing concurrent base-ring I/O submission to corrupt the ring producer state (duplicated or dropped commands). … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Apply the vendor-released fix by upgrading to Linux 6.6.157, 6.12.110, 6.18.51, 7.2.5 or 7.3-rc1, or by backporting the referenced stable commits listed above (for example 7eb618877503edbf17aa65e357a81bda1fc8f163 for the 6.6 series and b3a362466db6b8ec47cc537ac641ac197fa69b5d / 11834e5773e20fd3742d7eb900876e66b9e7d029 for the newer series); there is no runtime tunable or sysfs switch that disables the affected locking path, so a kernel update is the only complete fix. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, inventory all Linux hosts using QLogic Fibre Channel HBAs (qla2xxx driver, e.g. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Same technique Denial Of Service
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-80457
GHSA-9274-rr8v-cm9q