CVE Catalog

CVE-2026-98386

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel scsi: qla2xxx driver, __qla2x00_alloc_iocbs() zeroes the QLAFX00 request ring slot with a plain memset(), even though it is ioremapped device I/O memory, not DMA-coherent RAM. On architectures like ARM64, memset() may emit invalid instructions (e.g., DC ZVA) on Device memory, causing a synchronous external abort. The fix uses memset_io() for QLAFX00.

Risk Assessment

Can lead to synchronous abort and system crash on architectures like ARM64 with QLAFX00 cards. Affects systems with QLogic Fibre Channel adapters.

Recommendation

Update the Linux kernel to a version containing the fix. If using QLAFX00 adapters on ARM64, prioritize the update.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Use memset_io() to clear QLAFX00 request ring slot For QLAFX00 the request ring is ioremapped device I/O memory (ha->iobase + req_que_off), not DMA-coherent RAM, which is why the rest of the FX00 path accesses it through memcpy_toio() and the wrt_reg_* helpers. __qla2x00_alloc_iocbs() however zeroed the producer slot with a plain memset(). On architectures such as ARM64 a regular memset() may emit unaligned or block-zeroing instructions (e.g. DC ZVA) that are invalid on Device memory, leading to a synchronous external abort. Use memset_io() to clear the slot for QLAFX00, matching the I/O accessors used elsewhere on this ring. Other adapters keep the plain memset() on their DMA-coherent rings. The zero-fill is retained for FX00 because its IOCB builders (e.g. qlafx00_fxdisc_iocb()) copy only part of the entry and rely on the unused tail being pre-zeroed.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS