Description
In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Zero-init bsg stack buffers to avoid info leak Several bsg handlers stage their request/reply in an uninitialized 256-byte on-stack buffer (uint8_t bsg[DMA_POOL_SIZE]) and fill it via sg_copy_to_buffer(), which only copies as many bytes as the user-supplied request payload. When the request is shorter than the structure, the remainder of the buffer is left holding stale stack data. qla2x00_read_fru_status() and qla2x00_read_i2c() then copy the full structure back to the reply payload with sg_copy_from_buffer(), leaking the uninitialized stack bytes to user space. The write/update paths do not copy the buffer back, but can feed uninitialized fields to the device. Zero the stack buffer at declaration in all five handlers, mirroring the heap kzalloc() approach, so short requests can no longer expose stale memory.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
697a4bc69159c3396035b0506ffa55c4b2d0b1f4 to < 1c820d0900e4aacd5020b989159f6b4b2f7d0d6aaffected697a4bc69159c3396035b0506ffa55c4b2d0b1f4 to < 26bc6a2c235a70bfc9b6de412600208aca820e20affected697a4bc69159c3396035b0506ffa55c4b2d0b1f4 to < 5ab32dff910291b5e6bf6223f8a4003536c1800aaffected697a4bc69159c3396035b0506ffa55c4b2d0b1f4 to < 947c6bfcf7f5ec924995bec43e3108b98c75b44eaffected697a4bc69159c3396035b0506ffa55c4b2d0b1f4 to < 708c0ec1e09c52fee24b74ce9398bf3f8d1c83fdaffected697a4bc69159c3396035b0506ffa55c4b2d0b1f4 to < 4fe5790674097897a1af1367d1e384f7e5a62fb7affected697a4bc69159c3396035b0506ffa55c4b2d0b1f4 to < 7881faf862ee301ecfe3adc0725bd2fa0021cd95affected697a4bc69159c3396035b0506ffa55c4b2d0b1f4 to < b93d3bb3afe1b44489927de1eb4e66e8536a5935affected
Linux Linux
Default version status: affected
3.2affected0 to < 3.2unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.51 to ≤ 6.18.*unaffected7.2.5 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/1c820d0900e4aacd5020b989159f6b4b2f7d0d6a ↗
- https://git.kernel.org/stable/c/26bc6a2c235a70bfc9b6de412600208aca820e20 ↗
- https://git.kernel.org/stable/c/5ab32dff910291b5e6bf6223f8a4003536c1800a ↗
- https://git.kernel.org/stable/c/947c6bfcf7f5ec924995bec43e3108b98c75b44e ↗
- https://git.kernel.org/stable/c/708c0ec1e09c52fee24b74ce9398bf3f8d1c83fd ↗
- https://git.kernel.org/stable/c/4fe5790674097897a1af1367d1e384f7e5a62fb7 ↗
- https://git.kernel.org/stable/c/7881faf862ee301ecfe3adc0725bd2fa0021cd95 ↗
- https://git.kernel.org/stable/c/b93d3bb3afe1b44489927de1eb4e66e8536a5935 ↗