Input: rmi_smbus - fix out-of-bounds read in rmi_smb_write_block()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 82264d0cf7aef2247563c031ff2ab96579d5d0cc · fixed in d01337c0892d1509500c727edf81380777c2dd0f; From 82264d0cf7aef2247563c031ff2ab96579d5d0cc · fixed in 7c800af1c6030a5f27d46ce7d6d5d75f9c1efaf8; From 82264d0cf7aef2247563c031ff2ab96579d5d0cc · fixed in 29fbcf5834f0a7f74bfd017c07da2411b35a4e2a; From 82264d0cf7aef2247563c031ff2ab96579d5d0cc · fixed in 50dd585bee7669eb165e5defcc35d17f3822cfbb; From 82264d0cf7aef2247563c031ff2ab96579d5d0cc · fixed in e022538e13dd1c82af5ec25ac28f12ca0ab26160; From 82264d0cf7aef2247563c031ff2ab96579d5d0cc · fixed in dc05ec97b8299e48e31367a9bc412c7e9c0e2b42; From 82264d0cf7aef2247563c031ff2ab96579d5d0cc · fixed in 9f0ce5e162eed8b68345abe839c59768bc60f99a; From 82264d0cf7aef2247563c031ff2ab96579d5d0cc · fixed in 51cfe54f815ae175c7d1126b983d4d7c89715004
- Linux Linux
4.10
- KernelLinux
From 4.10.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.54; From 6.19.0 · fixed in 7.2.8
References 8
git.kernel.org
- stable/c/d01337c0892d1509500c727edf81380777c2dd0f
- stable/c/7c800af1c6030a5f27d46ce7d6d5d75f9c1efaf8
- stable/c/29fbcf5834f0a7f74bfd017c07da2411b35a4e2a
- stable/c/50dd585bee7669eb165e5defcc35d17f3822cfbb
- stable/c/e022538e13dd1c82af5ec25ac28f12ca0ab26160
- stable/c/dc05ec97b8299e48e31367a9bc412c7e9c0e2b42
- stable/c/9f0ce5e162eed8b68345abe839c59768bc60f99a
- stable/c/51cfe54f815ae175c7d1126b983d4d7c89715004