[PATCH 0/2] platform/x86: hp-bioscfg: fix OOB reads and buffer desynchronization in buffer parsers
Muhammad Bilal <[email protected]>
| Newsgroups | org.kernel.vger.stable,org.kernel.vger.linux-kernel,org.kernel.vger.platform-driver-x86 |
|---|---|
| Message-ID | <[email protected]> |
This series addresses out-of-bounds reads and buffer accounting issues in hp-bioscfg's WMI binary buffer parsers (hp_get_integer_from_buffer() and hp_get_string_from_buffer()): 1. Patch 1 fixes an out-of-bounds read and buffer size desynchronization in hp_get_integer_from_buffer() when reading integers from unaligned buffer addresses where PTR_ALIGN introduces padding. 2. Patch 2 fixes two heap out-of-bounds reads (passing byte count instead of wchar_t count to utf16s_to_utf8s(), and loop bound expansion in the escape-counting loop), a 2-byte under-allocation check, and buffer pointer/length desynchronization in hp_get_string_from_buffer(). Tested on HP hardware with CONFIG_KASAN=y. Muhammad Bilal (2): platform/x86: hp-bioscfg: fix OOB read in hp_get_integer_from_buffer() on unaligned input platform/x86: hp-bioscfg: fix heap OOB read and buffer desync in hp_get_string_from_buffer() drivers/platform/x86/hp/hp-bioscfg/bioscfg.c | 36 +++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) -- 2.43.0