Linux: scsi: qla2xxx: Use memset_io() to clear QLAFX00 request ring slot
What fixes it
- 2df8c8630904794100189fa3d70598642e1877ceLinuxCVE List
- 53eb96c244d150dfb8cc4b5b0492ab53755f3701LinuxCVE List
- 6ee6dfd922fafd508f6bde16de30dd2db796b7a7LinuxCVE List
- 626e44f3d8a924a97a3848a9fd45833947e081e9LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
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.
Text from CVE List
Affected versions 12
- Linuxaffected: 8ae6d9c7eb1004bc134813287010d57a863ba13b before 2df8c8630904794100189fa3d70598642e1877ceCVE List
- Linuxaffected: 8ae6d9c7eb1004bc134813287010d57a863ba13b before 53eb96c244d150dfb8cc4b5b0492ab53755f3701CVE List
- Linuxaffected: 8ae6d9c7eb1004bc134813287010d57a863ba13b before 6ee6dfd922fafd508f6bde16de30dd2db796b7a7CVE List
- Linuxaffected: 8ae6d9c7eb1004bc134813287010d57a863ba13b before e41d28d9a242c4005b7d01a7ee7769405a6a2c2eCVE List
- Linuxaffected: 8ae6d9c7eb1004bc134813287010d57a863ba13b before 626e44f3d8a924a97a3848a9fd45833947e081e9CVE List
- Linuxaffected: 3.10CVE List
- Linuxunaffected: all versions before 3.10CVE List
- Linuxunaffected: 6.6.160 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2.7 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 5
- git.kernel.org/stable/c/2df8c8630904794100189fa3d70598642e1877ceReferencevia CVE List
- git.kernel.org/stable/c/53eb96c244d150dfb8cc4b5b0492ab53755f3701Referencevia CVE List
- git.kernel.org/stable/c/6ee6dfd922fafd508f6bde16de30dd2db796b7a7Referencevia CVE List
- git.kernel.org/stable/c/e41d28d9a242c4005b7d01a7ee7769405a6a2c2eReferencevia CVE List
- git.kernel.org/stable/c/626e44f3d8a924a97a3848a9fd45833947e081e9Referencevia CVE List