Description
In the Linux kernel, the following vulnerability has been resolved: hwmon: (pmbus/q54sj108a2) fix stack overflow in debugfs read The q54sj108a2_debugfs_read function suffers from a stack buffer overflow due to incorrect arguments passed to bin2hex(). The function currently passes 'data' as the destination and 'data_char' as the source. Because bin2hex() converts each input byte into two hex characters, a 32-byte block read results in 64 bytes of output. Since 'data' is only 34 bytes (I2C_SMBUS_BLOCK_MAX + 2), this writes 30 bytes past the end of the buffer onto the stack. Additionally, the arguments were swapped: it was reading from the zero-initialized 'data_char' and writing to 'data', resulting in all-zero output regardless of the actual I2C read. Fix this by: 1. Expanding 'data_char' to 66 bytes to safely hold the hex output. 2. Correcting the bin2hex() argument order and using the actual read count. 3. Using a pointer to select the correct output buffer for the final simple_read_from_buffer call.
Product status
d014538aa38561cd24c5eb228223585f26c5ec71 (git) before a0fc1b9c738fba231f190ab960c83202722efee5
d014538aa38561cd24c5eb228223585f26c5ec71 (git) before c59090c50f62a17129fc4c5407bc4071305a9e82
d014538aa38561cd24c5eb228223585f26c5ec71 (git) before 52db5ef163c96f916d424e472fb17aadc35a9f7a
d014538aa38561cd24c5eb228223585f26c5ec71 (git) before b48a0f8d4541a4f6651dc9a64430ce9fdf5c120b
d014538aa38561cd24c5eb228223585f26c5ec71 (git) before 73a7a345816946d276ad2c46c8bb771de67cfc46
d014538aa38561cd24c5eb228223585f26c5ec71 (git) before 24a7b9daa103fa963b3fd37d8805b23e01621976
d014538aa38561cd24c5eb228223585f26c5ec71 (git) before 25dd70a03b1f5f3aa71e1a5091ecd9cd2a13ee43
5.11
Any version before 5.11
5.15.203 (semver)
6.1.167 (semver)
6.6.130 (semver)
6.12.78 (semver)
6.18.19 (semver)
6.19.9 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/a0fc1b9c738fba231f190ab960c83202722efee5
git.kernel.org/...c/c59090c50f62a17129fc4c5407bc4071305a9e82
git.kernel.org/...c/52db5ef163c96f916d424e472fb17aadc35a9f7a
git.kernel.org/...c/b48a0f8d4541a4f6651dc9a64430ce9fdf5c120b
git.kernel.org/...c/73a7a345816946d276ad2c46c8bb771de67cfc46
git.kernel.org/...c/24a7b9daa103fa963b3fd37d8805b23e01621976
git.kernel.org/...c/25dd70a03b1f5f3aa71e1a5091ecd9cd2a13ee43