In the Linux kernel, the following vulnerability has been resolved:
spi: ch341: fix out-of-bounds memory access in ch341_transfer_one
Discovered by Atuin - Automated Vulnerability Discovery Engine.
The 'len' variable is calculated as 'min(32, trans->len + 1)', which includes the 1-byte command header.
When copying data from 'trans->tx_buf' to 'ch341->tx_buf + 1', using 'len' as the length is incorrect because:
- It causes an out-of-bounds read from 'trans->tx_buf' (which has size
- It can cause an out-of-bounds write to 'ch341->tx_buf' if 'len' is
Fix this by copying 'len - 1' bytes.