platform/x86: hp-bioscfg: fix off-by-one write in hp_get_string_from_buffer()
- 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 6.6.157, 6.12.109, 6.18.50, 7.2.4
- 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: platform/x86: hp-bioscfg: fix off-by-one write in hp_get_string_from_buffer() hp_get_string_from_buffer() clamps the converted string length against the destination buffer size with "size > dst_size", so when the converted length is exactly equal to dst_size, conv_dst_size is left at dst_size and the unconditional NUL terminator write dst[conv_dst_size] = 0; lands one byte past the destination buffer. This is the same shape of bug as the previously fixed off-by-one in hp_convert_hexstr_to_str(): the buffer is sized correctly for the content, but the terminator write is never checked against that size. Fix by changing the comparison to ">=" so conv_dst_size is always left with room for the terminator. All fixed-size destinations that reach this function (path[512], current_value[512], current_password/current_value[64], and the per-entry buffers in encodings[][512] and prerequisites[][512]) are affected.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From a34fc329b1895fc8a6eb12099adc47009421ba6a · fixed in 8f5aa1506cdddea6b33584c2445b9ce99eeddb64; From a34fc329b1895fc8a6eb12099adc47009421ba6a · fixed in 3cc772d0154799961f032e5a992d4a50523e291a; From a34fc329b1895fc8a6eb12099adc47009421ba6a · fixed in b15b334fbc3c0c46440f8a892ebf62164fca23d6; From a34fc329b1895fc8a6eb12099adc47009421ba6a · fixed in ddf98cf33529714b3ba1a158afb1db5b0f759a1a; From a34fc329b1895fc8a6eb12099adc47009421ba6a · fixed in dc03f05e419f3460342fb7564884f244622634b6
- Linux Linux
6.6
- KernelLinux
From 6.6.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.109; From 6.13.0 · fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4