{"id":24543,"date":"2026-09-16T20:32:27","date_gmt":"2026-09-16T12:32:27","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89856"},"modified":"2026-09-16T20:32:27","modified_gmt":"2026-09-16T12:32:27","slug":"cve-2026-89856","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89856","title":{"rendered":"CVE-2026-89856 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: qla2xxx: Clamp"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>scsi: qla2xxx: Clamp MSI-X derived queue counts to avoid truncation<\/p>\n<p>ha-&gt;msix_count is u16, but ha-&gt;max_req_queues, ha-&gt;max_rsp_queues and<br \/>\nha-&gt;max_qpairs are u8. Deriving the queue count as<br \/>\n&#8220;ha-&gt;max_req_queues = ha-&gt;msix_count &#8211; 1&#8221; therefore truncates: a board<br \/>\n(or a misconfigured\/malicious hot-plugged device) advertising 257 MSI-X<br \/>\nvectors yields msix_count &#8211; 1 == 256, which truncates to 0. An MSI-X<br \/>\ncount of 1 zeroes it as well, and in target mode the subsequent<br \/>\n&#8220;ha-&gt;max_req_queues&#8211;&#8221; then underflows 0 to 255.<\/p>\n<p>When the count is 0, qla2x00_alloc_queues() calls<br \/>\nkzalloc_objs(struct req_que *, 0), which returns ZERO_SIZE_PTR. That is<br \/>\nnot NULL, so the allocation check passes and the following<br \/>\n&#8220;ha-&gt;req_q_map[0] = req&#8221; dereferences ZERO_SIZE_PTR, corrupting memory<br \/>\nor crashing the kernel.<\/p>\n<p>Add qla_calc_queue_count() to clamp the derived value into<br \/>\n[1, QLA_MAX_QUEUES &#8211; 1] so it always fits in u8 and is never zero, and<br \/>\nuse it at all three derivation sites (qla25xx_iospace_config(),<br \/>\nqla83xx_iospace_config() and qla24xx_enable_msix()). Also guard the<br \/>\ntarget-mode decrement so it cannot reintroduce a zero (which would in<br \/>\nturn underflow max_qpairs).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>scsi: qla2xxx: Clamp MSI-X derived queue counts to avoid truncation<\/p>\n<p>ha-&gt;msix_count is u16, but ha-&gt;max_req_queues, ha-&gt;max_rsp_que<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24543","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24543","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=24543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}