From: Muhammad Bilal <meatuni001@gmail.com>
To: platform-driver-x86@vger.kernel.org
Cc: jorge.lopez2@hp.com, hansg@kernel.org,
ilpo.jarvinen@linux.intel.com, linux@weissschuh.net,
linux-kernel@vger.kernel.org, meatuni001@gmail.com
Subject: [PATCH 00/13] platform/x86: hp-bioscfg: fix multiple memory safety bugs and parsing errors
Date: Mon, 3 Aug 2026 19:30:23 +0500 [thread overview]
Message-ID: <20260803143037.93105-1-meatuni001@gmail.com> (raw)
This series fixes several bugs in the hp-bioscfg driver:
1. Memory safety issues (patches 1-6):
- Off-by-one NUL terminator write in hp_get_string_from_buffer()
- Heap OOB read in sk_store()/kek_store() when passing original count
instead of trimmed length to hp_wmi_perform_query()
- Heap OOB read on empty password write in validate_password_input()
- 16-byte heap overflow in hp_calculate_security_buffer() for empty
authentication tokens
- Off-by-one heap OOB write in audit_log_entries_show() when more
than 256 log entries are reported
- Missing bounds check in the PSWD_ENCODINGS parsing loop
2. Logic bugs (patches 7-8):
- new_password_store() incorrectly passing is_current=true, causing
writes to land in current_password instead
- ORD_LIST_ELEMENTS case using a stale NULL str_value pointer
instead of converting the current ACPI element directly
3. ACPI package element index tracking (patches 9-13):
- Five attribute-type parsers (enum, int, string, order-list, passwd)
all share the same defect: multi-element array cases
(PREREQUISITES, ENUM_POSSIBLE_VALUES, PSWD_ENCODINGS) consume
"size" consecutive elements but the outer loop only advances by
one, causing the next iteration to misread a leftover array entry
as the next property and abort with -EIO
Tested on HP EliteBook 840 G2 (BIOS M71 Ver. 01.31), kernel 7.2.0-rc5+,
with CONFIG_KASAN_GENERIC=y and CONFIG_SLUB_DEBUG=y.
This series applies on top of:
commit ea4d8f8ba283 ("platform/x86: hp-bioscfg: fix
slab-out-of-bounds write in hp_convert_hexstr_to_str")
Muhammad Bilal (13):
platform/x86: hp-bioscfg: fix off-by-one write in
hp_get_string_from_buffer
platform/x86: hp-bioscfg: fix heap OOB read in sk_store and kek_store
platform/x86: hp-bioscfg: fix heap OOB read on empty password write
platform/x86: hp-bioscfg: fix 16-byte heap overflow for empty auth
token
platform/x86: hp-bioscfg: fix off-by-one heap OOB write in
audit_log_entries_show
platform/x86: hp-bioscfg: add missing bounds check in PSWD_ENCODINGS
loop
platform/x86: hp-bioscfg: fix new_password_store overwriting
current_password
platform/x86: hp-bioscfg: fix ORD_LIST_ELEMENTS never being parsed
platform/x86: hp-bioscfg: advance elem past consumed array elements in
enum-attributes
platform/x86: hp-bioscfg: advance elem past consumed array elements in
int-attributes
platform/x86: hp-bioscfg: advance elem past consumed array elements in
string-attributes
platform/x86: hp-bioscfg: advance elem past consumed array elements in
order-list-attributes
platform/x86: hp-bioscfg: advance elem past consumed array elements in
passwdobj-attributes
drivers/platform/x86/hp/hp-bioscfg/bioscfg.c | 2 +-
.../platform/x86/hp/hp-bioscfg/enum-attributes.c | 4 ++++
drivers/platform/x86/hp/hp-bioscfg/int-attributes.c | 2 ++
.../x86/hp/hp-bioscfg/order-list-attributes.c | 6 +++++-
.../x86/hp/hp-bioscfg/passwdobj-attributes.c | 13 +++++++++++--
.../platform/x86/hp/hp-bioscfg/spmobj-attributes.c | 6 +++---
.../platform/x86/hp/hp-bioscfg/string-attributes.c | 2 ++
.../x86/hp/hp-bioscfg/surestart-attributes.c | 2 +-
8 files changed, 29 insertions(+), 8 deletions(-)
--
2.55.0
next reply other threads:[~2026-08-03 14:30 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-03 14:30 Muhammad Bilal [this message]
2026-08-03 14:30 ` [PATCH 01/13] platform/x86: hp-bioscfg: fix off-by-one write in hp_get_string_from_buffer Muhammad Bilal
2026-08-03 14:30 ` [PATCH 02/13] platform/x86: hp-bioscfg: fix heap OOB read in sk_store and kek_store Muhammad Bilal
2026-08-03 14:30 ` [PATCH 03/13] platform/x86: hp-bioscfg: fix heap OOB read on empty password write Muhammad Bilal
2026-08-03 14:30 ` [PATCH 04/13] platform/x86: hp-bioscfg: fix 16-byte heap overflow for empty auth token Muhammad Bilal
2026-08-03 14:30 ` [PATCH 05/13] platform/x86: hp-bioscfg: fix off-by-one heap OOB write in audit_log_entries_show Muhammad Bilal
2026-08-03 14:30 ` [PATCH 06/13] platform/x86: hp-bioscfg: add missing bounds check in PSWD_ENCODINGS loop Muhammad Bilal
2026-08-03 14:30 ` [PATCH 07/13] platform/x86: hp-bioscfg: fix new_password_store overwriting current_password Muhammad Bilal
2026-08-03 14:30 ` [PATCH 08/13] platform/x86: hp-bioscfg: fix ORD_LIST_ELEMENTS never being parsed Muhammad Bilal
2026-08-03 14:30 ` [PATCH 09/13] platform/x86: hp-bioscfg: advance elem past consumed array elements in enum-attributes Muhammad Bilal
2026-08-03 14:30 ` [PATCH 10/13] platform/x86: hp-bioscfg: advance elem past consumed array elements in int-attributes Muhammad Bilal
2026-08-03 14:30 ` [PATCH 11/13] platform/x86: hp-bioscfg: advance elem past consumed array elements in string-attributes Muhammad Bilal
2026-08-12 10:41 ` Ilpo Järvinen
2026-08-12 11:21 ` Muhammad Bilal
2026-08-03 14:30 ` [PATCH 12/13] platform/x86: hp-bioscfg: advance elem past consumed array elements in order-list-attributes Muhammad Bilal
2026-08-03 14:30 ` [PATCH 13/13] platform/x86: hp-bioscfg: advance elem past consumed array elements in passwdobj-attributes Muhammad Bilal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260803143037.93105-1-meatuni001@gmail.com \
--to=meatuni001@gmail.com \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jorge.lopez2@hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@weissschuh.net \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.