Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-97530

Опубликовано: 25 сент. 2026
Источник: redhat
CVSS3: 5.5

Описание

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.

A flaw was found in the Linux kernel's qla2xxx Fibre Channel driver. A remote entity on the Fibre Channel network can cause a Denial of Service (DoS) by transmitting frames containing specific payload data. The driver misinterprets matching data bytes within received frames as an indicator that incoming packets are pending, entering an infinite busy-wait loop. This behavior results in a CPU soft lockup, rendering the host system unresponsive.

Отчет

A flaw was found in the Linux kernel's qla2xxx Fibre Channel driver, affecting the Red Hat Enterprise Linux 8, 9, and 10 kernel and kernel-rt packages, Red Hat In-Vehicle OS kernels, and the OpenShift Container Platform RHEL CoreOS kernels. Red Hat rates the impact of this issue as LOW. When copying multi-IOCB responses, qla27xx_copy_multiple_pkt() and qla27xx_copy_fpin_pkt() polled the response ring for the RESPONSE_PROCESSED (0xDEADDEAD) signature at a byte offset that aliases with raw continuation IOCB frame payload data. An entity able to transmit frames on the attached Fibre Channel SAN can send a frame whose payload bytes at that offset equal 0xDEADDEAD, which the driver misinterprets as the continuation IOCB not yet having arrived, so the code spins indefinitely in interrupt/DPC context without advancing the ring. The result is a CPU soft lockup that renders the host unresponsive (denial of service); there is no impact on confidentiality or integrity. Red Hat Enterprise Linux 7 Extended Lifecycle Support is not affected because the vulnerable code, introduced with the SAN congestion management implementation, is not present in that stream. Because this issue is rated LOW impact, fixes for the affected streams are deferred to future updates rather than shipped immediately; until a fix is released, systems whose Fibre Channel fabrics are accessible to untrusted entities remain at residual risk of a CPU soft lockup. The assigned CVSS:3.1 base score is 5.5 (Moderate), but Red Hat's overall impact rating is LOW because exploitation requires the ability to send crafted traffic on the adjacent Fibre Channel storage fabric rather than general network reachability.

Меры по смягчению последствий

Exploitation requires the ability to transmit crafted frames on the Fibre Channel SAN attached to the host, so exposure can be reduced by restricting FC fabric access to trusted entities only, for example through switch zoning and port masking so that untrusted initiators cannot deliver frames to the affected host. Aside from such fabric-level access controls, mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 10kernelFix deferred
Red Hat Enterprise Linux 6kernelOut of support scope
Red Hat Enterprise Linux 7kernelNot affected
Red Hat Enterprise Linux 7kernel-rtNot affected
Red Hat Enterprise Linux 8kernelFix deferred
Red Hat Enterprise Linux 8kernel-rtFix deferred
Red Hat Enterprise Linux 9kernelFix deferred
Red Hat Enterprise Linux 9kernel-rtFix deferred
Red Hat OpenShift Container Platform 4openshift/ose-rhel-coreos-8Fix deferred
Red Hat OpenShift Container Platform 4openshift/ose-rhel-coreos-9Fix deferred

Показывать по

Дополнительная информация

Статус:

Low
Дефект:
CWE-835
https://bugzilla.redhat.com/show_bug.cgi?id=2541082kernel: scsi: qla2xxx: Fix soft lockup polling continuation IOCB signature

5.5 Medium

CVSS3

Связанные уязвимости

ubuntu
около 1 месяца назад

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

nvd
около 1 месяца назад

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 copyi

CVSS3: 5.5
msrc
около 1 месяца назад

scsi: qla2xxx: Fix soft lockup polling continuation IOCB signature

debian
около 1 месяца назад

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

github
около 1 месяца назад

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

5.5 Medium

CVSS3

Уязвимость CVE-2026-97530 в Red Hat CVE — exploitDog