Description
In the Linux kernel, the following vulnerability has been resolved: Input: rmi_smbus - fix out-of-bounds read in rmi_smb_write_block() When chunking writes into SMBus blocks in rmi_smb_write_block(), the loop calculates block_len using the original total length (len) instead of the remaining length (cur_len). If len is greater than 32 bytes (SMB_MAX_COUNT), block_len remains 32 for every iteration, even on the final partial chunk where fewer than 32 bytes remain. This causes smb_block_write() to read 32 bytes from the advanced data buffer pointer, reading past the end of the input buffer. Fix this by calculating block_len using cur_len and advancing the buffer and address pointers by block_len.
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
82264d0cf7aef2247563c031ff2ab96579d5d0cc to < d01337c0892d1509500c727edf81380777c2dd0faffected82264d0cf7aef2247563c031ff2ab96579d5d0cc to < 7c800af1c6030a5f27d46ce7d6d5d75f9c1efaf8affected82264d0cf7aef2247563c031ff2ab96579d5d0cc to < 29fbcf5834f0a7f74bfd017c07da2411b35a4e2aaffected82264d0cf7aef2247563c031ff2ab96579d5d0cc to < 50dd585bee7669eb165e5defcc35d17f3822cfbbaffected82264d0cf7aef2247563c031ff2ab96579d5d0cc to < e022538e13dd1c82af5ec25ac28f12ca0ab26160affected82264d0cf7aef2247563c031ff2ab96579d5d0cc to < dc05ec97b8299e48e31367a9bc412c7e9c0e2b42affected82264d0cf7aef2247563c031ff2ab96579d5d0cc to < 9f0ce5e162eed8b68345abe839c59768bc60f99aaffected82264d0cf7aef2247563c031ff2ab96579d5d0cc to < 51cfe54f815ae175c7d1126b983d4d7c89715004affected
Linux Linux
Default version status: affected
4.10affected0 to < 4.10unaffected5.10.271 to ≤ 5.10.*unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.112 to ≤ 6.12.*unaffected6.18.54 to ≤ 6.18.*unaffected7.2.8 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/d01337c0892d1509500c727edf81380777c2dd0f ↗
- https://git.kernel.org/stable/c/7c800af1c6030a5f27d46ce7d6d5d75f9c1efaf8 ↗
- https://git.kernel.org/stable/c/29fbcf5834f0a7f74bfd017c07da2411b35a4e2a ↗
- https://git.kernel.org/stable/c/50dd585bee7669eb165e5defcc35d17f3822cfbb ↗
- https://git.kernel.org/stable/c/e022538e13dd1c82af5ec25ac28f12ca0ab26160 ↗
- https://git.kernel.org/stable/c/dc05ec97b8299e48e31367a9bc412c7e9c0e2b42 ↗
- https://git.kernel.org/stable/c/9f0ce5e162eed8b68345abe839c59768bc60f99a ↗
- https://git.kernel.org/stable/c/51cfe54f815ae175c7d1126b983d4d7c89715004 ↗