Skip to main content

Linux Kernel EUVDEUVD-2026-80457

| CVE-2026-89857 CRITICAL
2026-09-16 Linux GHSA-9274-rr8v-cm9q
9.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
3.6 LOW

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.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

7
Metadata Corrected
Sep 16, 2026 - 16:40 vuln.today
tag: Denial Of Service added
Metadata Corrected
Sep 16, 2026 - 16:40 vuln.today
tag: Information Disclosure removed
Analysis Generated
Sep 16, 2026 - 15:42 vuln.today
CVSS changed
Sep 16, 2026 - 15:22 NVD
9.8 (CRITICAL)
Patch available
Sep 16, 2026 - 11:03 EUVD
CVE Published
Sep 16, 2026 - 10:31 cve.org
CRITICAL 9.8
CVE Published
Sep 16, 2026 - 10:31 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.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

Access
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Impact
technique details hidden

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.

Share

EUVD-2026-80457 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy