{"id":28962,"date":"2026-09-25T20:31:37","date_gmt":"2026-09-25T12:31:37","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97530"},"modified":"2026-09-25T20:31:37","modified_gmt":"2026-09-25T12:31:37","slug":"cve-2026-97530","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97530","title":{"rendered":"CVE-2026-97530 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: qla2xxx: Fix so"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>scsi: qla2xxx: Fix soft lockup polling continuation IOCB signature<\/p>\n<p>qla27xx_copy_multiple_pkt() and qla27xx_copy_fpin_pkt() poll<br \/>\nrsp_q-&gt;ring_ptr-&gt;signature for RESPONSE_PROCESSED (0xDEADDEAD) to decide<br \/>\nwhether the next continuation IOCB has arrived, spinning on cpu_relax()<br \/>\nwithout advancing the ring or decrementing the entry count while it has<br \/>\nnot. response_t::signature lives at byte offset 60, but a continuation<br \/>\nIOCB (sts_cont_entry_t \/ struct sts_cont_entry_ext) carries raw FC frame<br \/>\npayload at that offset (data[56..59]). A received frame whose payload<br \/>\nbytes happen to equal 0xDEADDEAD is therefore misread as &#8220;not yet<br \/>\narrived&#8221;, and the loop spins forever in interrupt\/DPC context, causing a<br \/>\nCPU soft lockup.<\/p>\n<p>The poll is also unnecessary: callers of qla27xx_copy_multiple_pkt()<br \/>\n(PT_LS4_UNSOL and the NVMe purls path) already gate on<br \/>\nqla_chk_cont_iocb_avail(), which guarantees all entry_count IOCBs are<br \/>\npresent before copying begins. The sibling helper<br \/>\n__qla_copy_purex_to_buffer() already drops the signature poll and relies<br \/>\non the entry_type == STATUS_CONT_TYPE guard instead.<\/p>\n<p>Remove the signature busy-wait from both helpers, keeping the entry_type<br \/>\nguard, and gate the FPIN path with qla_chk_cont_iocb_avail() so it defers<br \/>\nand re-processes on the next interrupt once all continuation IOCBs have<br \/>\narrived, mirroring the ELS_AUTH_ELS and PT_LS4_UNSOL arms. With this the<br \/>\nsignature field is never read on a continuation IOCB, eliminating the<br \/>\npayload-aliasing lockup.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>scsi: qla2xxx: Fix soft lockup polling continuation IOCB signature<\/p>\n<p>qla27xx_copy_multiple_pkt() and qla27xx_copy_fpin_pkt() poll<br \/>\nrs<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-28962","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/28962","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}