CVE-2026-97530: scsi: qla2xxx: Fix soft lockup polling continuation IOCB signature

Published Sep 25, 2026
·
Updated

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

scsi: qla2xxx: Fix soft lockup polling continuation IOCB signature

qla27xxcopymultiplepkt() and qla27xxcopyfpinpkt() poll rspq->ringptr->signature for RESPONSEPROCESSED (0xDEADDEAD) to decide whether the next continuation IOCB has arrived, spinning on cpurelax() without advancing the ring or decrementing the entry count while it has not. responset::signature lives at byte offset 60, but a continuation IOCB (stscontentryt / struct stscontentryext) 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 qla27xxcopymultiplepkt() (PTLS4UNSOL and the NVMe purls path) already gate on qlachkcontiocbavail(), which guarantees all entrycount IOCBs are present before copying begins. The sibling helper qlacopypurextobuffer() already drops the signature poll and relies on the entrytype == STATUSCONTTYPE guard instead.

Remove the signature busy-wait from both helpers, keeping the entrytype guard, and gate the FPIN path with qlachkcontiocbavail() so it defers and re-processes on the next interrupt once all continuation IOCBs have arrived, mirroring the ELSAUTHELS and PTLS4UNSOL arms. With this the signature field is never read on a continuation IOCB, eliminating the payload-aliasing lockup.

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
Description
Data Sourced
via NVD·11:17 AM
Description

Frequently Asked Questions

1

Which systems are exposed to this issue?

Systems using the Linux kernel qla2xxx SCSI driver are exposed when they process the affected continuation IOCB paths, including PT_LS4 unsolicited traffic and the NVMe purls path. The issue occurs in interrupt/DPC context.

2

What must an attacker or triggering input do to cause the lockup?

A received Fibre Channel frame must place the value 0xDEADDEAD in payload bytes corresponding to the continuation IOCB signature offset. The driver can then misinterpret the continuation IOCB as not yet available and spin indefinitely on cpu_relax().

3

What is the operational impact?

The affected CPU can enter a soft lockup while the driver waits for a continuation IOCB that has already arrived. This is a denial-of-service condition rather than evidence of data exposure or modification.

4

How can administrators identify the affected behavior?

Look for Linux kernel soft-lockup reports involving qla27xx_copy_multiple_pkt() or qla27xx_copy_fpin_pkt(), particularly while handling Fibre Channel traffic. The faulty path repeatedly polls the response ring IOCB signature instead of advancing through available continuation entries.

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