CVE-2026-89856 scsi: qla2xxx: Clamp MSI-X derived queue counts to avoid truncation

High 8.4 Published Updated

A malicious or misconfigured device can trigger integer truncation in the qla2xxx driver, leading to memory corruption or kernel crashes.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2026-89856?

CVE-2026-89856 is a high-severity vulnerability in Linux, published on 16 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

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

scsi: qla2xxx: Clamp MSI-X derived queue counts to avoid truncation

ha->msix_count is u16, but ha->max_req_queues, ha->max_rsp_queues and ha->max_qpairs are u8. Deriving the queue count as "ha->max_req_queues = ha->msix_count - 1" therefore truncates: a board (or a misconfigured/malicious hot-plugged device) advertising 257 MSI-X vectors yields msix_count - 1 == 256, which truncates to 0. An MSI-X count of 1 zeroes it as well, and in target mode the subsequent "ha->max_req_queues--" then underflows 0 to 255.

When the count is 0, qla2x00_alloc_queues() calls kzalloc_objs(struct req_que *, 0), which returns ZERO_SIZE_PTR. That is not NULL, so the allocation check passes and the following "ha->req_q_map[0] = req" dereferences ZERO_SIZE_PTR, corrupting memory or crashing the kernel.

Add qla_calc_queue_count() to clamp the derived value into [1, QLA_MAX_QUEUES - 1] so it always fits in u8 and is never zero, and use it at all three derivation sites (qla25xx_iospace_config(), qla83xx_iospace_config() and qla24xx_enable_msix()). Also guard the target-mode decrement so it cannot reintroduce a zero (which would in turn underflow max_qpairs).

Which versions are affected by CVE-2026-89856?

How do I fix CVE-2026-89856?

Apply the vendor's patch.

Is CVE-2026-89856 being exploited?

There is no known exploitation of CVE-2026-89856 in the wild and no public exploit code.

Sources

Also known as AZL-101363, BELL-CVE-2026-89856, DEBIAN-CVE-2026-89856, GHSA-m9fj-xvr8-vh59, UBUNTU-CVE-2026-89856.

Is CVE-2026-89856 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free