QEMU before 8.2.0 has an integer underflow, and resultant buffer overflow, via a TI command when an expected non-DMA transfer length is less than the length of the available FIFO data. This occurs in esp_do_nodma in hw/scsi/esp.c because of an underflow of async_len.
The product copies an input buffer to an output buffer without verifying that the size of the input buffer is less than the size of the output buffer, leading to a buffer overflow.
Link | Tags |
---|---|
https://gitlab.com/qemu-project/qemu/-/issues/1810 | exploit vendor advisory issue tracking |
https://github.com/qemu/qemu/commit/77668e4b9bca03a856c27ba899a2513ddf52bb52 | patch |
https://gist.github.com/1047524396/5ce07b9d387095c276b1cd234ae5615e | third party advisory |
https://security.netapp.com/advisory/ntap-20240510-0012/ | third party advisory |