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

scsi: qla2xxx: Fix soft lockup polling continuation IOCB signature

qla27xx_copy_multiple_pkt() and qla27xx_copy_fpin_pkt() poll
rsp_q->ring_ptr->signature for RESPONSE_PROCESSED (0xDEADDEAD) to decide
whether the next continuation IOCB has arrived, spinning on cpu_relax()
without advancing the ring or decrementing the entry count while it has
not. response_t::signature lives at byte offset 60, but a continuation
IOCB (sts_cont_entry_t / struct sts_cont_entry_ext) carries raw FC frame
payload at that offset (data[56..59]). A received frame whose payload
bytes happen to equal 0xDEADDEAD is therefore misread as "not yet
arrived", and the loop spins forever in interrupt/DPC context, causing a
CPU soft lockup.

The poll is also unnecessary: callers of qla27xx_copy_multiple_pkt()
(PT_LS4_UNSOL and the NVMe purls path) already gate on
qla_chk_cont_iocb_avail(), which guarantees all entry_count IOCBs are
present before copying begins. The sibling helper
__qla_copy_purex_to_buffer() already drops the signature poll and relies
on the entry_type == STATUS_CONT_TYPE guard instead.

Remove the signature busy-wait from both helpers, keeping the entry_type
guard, and gate the FPIN path with qla_chk_cont_iocb_avail() so it defers
and re-processes on the next interrupt once all continuation IOCBs have
arrived, mirroring the ELS_AUTH_ELS and PT_LS4_UNSOL arms. With this the
signature field is never read on a continuation IOCB, eliminating the
payload-aliasing lockup.
Published: 2026-09-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via CPU soft lockup
Action: Apply Patch
AI Analysis

Impact

The Linux kernel’s scsi qla2xxx driver contains a loop that waits for a signature value 0xDEADDEAD to confirm that a continuation IOCB has arrived. When the Fibre Channel frame payload contains that same byte pattern, the driver misinterprets it as the signature and spins forever in cpu_relax(), causing a soft CPU lockup in interrupt/DPC context. The flaw does not enable arbitrary code execution but stalls the CPU and aborts the Fibre Channel session, leading to a loss of service on the affected host.

Affected Systems

The vulnerability is limited to systems that load the qla2xxx driver in the Linux kernel. No specific kernel releases are listed in the CVE entry, so any kernel that incorporates the unpatched qla2xxx code is potentially affected. Distributions that ship older kernels without the upstream patch, or users who compile the kernel themselves, must consider this risk. Precise version ranges cannot be determined from the data provided.

Risk and Exploitability

The CVSS base score of 5.5 indicates moderate severity. The EPSS score is reported as less than 1%, suggesting a low probability of exploitation. The vulnerability is not currently in the CISA KEV catalog, so no confirmed widespread attacks are known. The likely attack vector is the injection of a Fibre Channel frame with a payload matching 0xDEADDEAD into the qla2xxx driver during interrupt context, as inferred from the code’s polling loop. An attacker would need to be able to inject a Fibre Channel frame whose payload equals 0xDEADDEAD and reach the driver in interrupt context, which may require local privileges or a compromised or misconfigured FC network. If triggered, the resulting soft lockup would halt the exposed CPU(s) and cause a denial of service for processes depending on the affected storage subsystem.

Generated by OpenCVE AI on October 1, 2026 at 13:47 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the kernel to a version that incorporates the upstream qla2xxx signature polling removal fix, or apply the supplied patch to the current kernel source.
  • Rebuild the affected modules and install the updated kernel.
  • Reboot the system to ensure the patched driver is loaded in place of the vulnerable version.

Generated by OpenCVE AI on October 1, 2026 at 13:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DSA Debian DSA DSA-6568-1 linux security update
History

Sat, 03 Oct 2026 11:15:00 +0000


Thu, 01 Oct 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-832

Tue, 29 Sep 2026 13:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-835
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Low


Sat, 26 Sep 2026 01:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-832

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Fix soft lockup polling continuation IOCB signature qla27xx_copy_multiple_pkt() and qla27xx_copy_fpin_pkt() poll rsp_q->ring_ptr->signature for RESPONSE_PROCESSED (0xDEADDEAD) to decide whether the next continuation IOCB has arrived, spinning on cpu_relax() without advancing the ring or decrementing the entry count while it has not. response_t::signature lives at byte offset 60, but a continuation IOCB (sts_cont_entry_t / struct sts_cont_entry_ext) carries raw FC frame payload at that offset (data[56..59]). A received frame whose payload bytes happen to equal 0xDEADDEAD is therefore misread as "not yet arrived", and the loop spins forever in interrupt/DPC context, causing a CPU soft lockup. The poll is also unnecessary: callers of qla27xx_copy_multiple_pkt() (PT_LS4_UNSOL and the NVMe purls path) already gate on qla_chk_cont_iocb_avail(), which guarantees all entry_count IOCBs are present before copying begins. The sibling helper __qla_copy_purex_to_buffer() already drops the signature poll and relies on the entry_type == STATUS_CONT_TYPE guard instead. Remove the signature busy-wait from both helpers, keeping the entry_type guard, and gate the FPIN path with qla_chk_cont_iocb_avail() so it defers and re-processes on the next interrupt once all continuation IOCBs have arrived, mirroring the ELS_AUTH_ELS and PT_LS4_UNSOL arms. With this the signature field is never read on a continuation IOCB, eliminating the payload-aliasing lockup.
Title scsi: qla2xxx: Fix soft lockup polling continuation IOCB signature
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-03T10:59:22.625Z

Reserved: 2026-09-24T16:01:01.153Z

Link: CVE-2026-97530

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:03.200

Modified: 2026-10-03T11:18:01.837

Link: CVE-2026-97530

cve-icon Redhat

Severity : Low

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-97530 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T14:00:10Z

Weaknesses
  • CWE-835

    Loop with Unreachable Exit Condition ('Infinite Loop')