{"id":24534,"date":"2026-09-16T20:32:26","date_gmt":"2026-09-16T12:32:26","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89847"},"modified":"2026-09-16T20:32:26","modified_gmt":"2026-09-16T12:32:26","slug":"cve-2026-89847","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89847","title":{"rendered":"CVE-2026-89847 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: qla2xxx: Avoid"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>scsi: qla2xxx: Avoid double completion in async IOCB timeout<\/p>\n<p>qla2x00_async_iocb_timeout() tries to abort a timed-out async IOCB. When<br \/>\nqla24xx_async_abort_cmd() fails, both the SRB_LOGIN_CMD path and the<br \/>\nSRB_CTRL_VP\/default path scan outstanding_cmds[] for the SRB and then<br \/>\ncall sp-&gt;done(sp, QLA_FUNCTION_TIMEOUT) unconditionally, without checking<br \/>\nwhether the SRB was actually found and removed.<\/p>\n<p>If the response ISR completes the same handle first, it removes the SRB<br \/>\nunder qp_lock_ptr and runs sp-&gt;done() -&gt; complete(sp-&gt;comp). The<br \/>\nsubmitter qla24xx_control_vp() wakes from wait_for_completion(), clears<br \/>\nsp-&gt;comp, drops its reference and returns, reclaiming the on-stack<br \/>\ncompletion. The timer reference keeps the SRB alive across the timeout<br \/>\nhandler, but not the submitter&#8217;s stack. The timeout then issues a second<br \/>\nsp-&gt;done() -&gt; qla_ctrlvp_sp_done(), which evaluates &#8220;if (sp-&gt;comp)<br \/>\ncomplete(sp-&gt;comp)&#8221;; with the pointer loaded before the submitter&#8217;s NULL<br \/>\nstore, complete() writes into the freed stack frame, a use-after-free.<\/p>\n<p>Track whether this path removed the SRB from outstanding_cmds and only<br \/>\ncall sp-&gt;done() when it did, so the command is completed exactly once by<br \/>\nwhichever path owns it. This mirrors the sp_found guard already used in<br \/>\nqla24xx_abort_iocb_timeout().<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>scsi: qla2xxx: Avoid double completion in async IOCB timeout<\/p>\n<p>qla2x00_async_iocb_timeout() tries to abort a timed-out async IOCB. W<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24534","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24534","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=24534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}