CVE-2026-89865: scsi: qla2xxx: Zero SFP DMA buffer in FRU/I2C bsg handlers

Published Sep 16, 2026
·
Updated

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

scsi: qla2xxx: Zero SFP DMA buffer in FRU/I2C bsg handlers

The FRU and I2C bsg handlers stage their transfer in a DMAPOOLSIZE (256-byte) bounce buffer obtained from dmapoolalloc(), which does not zero the allocation. They initialize only a few leading bytes before handing the buffer to qla2x00writesfp().

qla2x00writesfp() can override the transfer length with a user-supplied value:

if (len == 1) opt |= BIT0; if (opt & BIT0) len = sfp;

sfp is the first byte of the (user-controlled) payload, so len can grow up to 255. The device then DMA-reads len bytes from the 256-byte pool buffer. Since only a small prefix was written (e.g. MAXFRUSIZE == 36 bytes for a FRU version, one byte for a FRU status register), the hardware reads past the initialized region and writes up to ~219 bytes of stale DMA-pool heap memory to the device flash.

Allocate the buffer with dmapoolzalloc() in all five FRU/I2C handlers so any bytes beyond the initialized data are zero rather than stale heap contents.

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    In all five FRU/I2C handlers, allocate the DMA buffer with dma_pool_zalloc() instead of dma_pool_alloc(), so any bytes beyond the initialized prefix are zero and not stale DMA-pool heap data.

    Linux kernel (qla2xxx: FRU/I2C bsg handlers) DMA buffer zeroing (dma_pool_zalloc vs dma_pool_alloc) = Use dma_pool_zalloc() in all five FRU/I2C handlers

Event History

Sep 16, 2026
CVE Published
via MITRE·10:31 AM
Data Sourced
via MITRE·10:31 AM
Description

Frequently Asked Questions

1

What access would an attacker need to trigger the stale-memory write?

The transfer length can be overridden by a user-supplied payload byte in the FRU and I2C BSG handlers. Exploitation therefore requires the ability to submit requests to those handlers.

2

What data could be exposed or corrupted?

The device can DMA-read bytes beyond the initialized portion of a 256-byte DMA bounce buffer and write stale DMA-pool heap contents to device flash. Depending on the handler, up to roughly 219 unintended bytes may be written.

3

Is there an interim mitigation if the kernel fix cannot be deployed immediately?

The provided information identifies the affected path as the FRU and I2C BSG handlers. Restricting access to submitting requests through those handlers can reduce exposure until the buffer-zeroing fix is applied.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203