CVE-2026-81013: platform/x86: hp-bioscfg: fix heap OOB read on empty password write
In the Linux kernel, the following vulnerability has been resolved:
platform/x86: hp-bioscfg: fix heap OOB read on empty password write
validatepasswordinput() computes length = strlen(buf) and then checks buf[length - 1] to strip a trailing newline, without checking that length is nonzero first. Writing an empty string (a bare '\n') to currentpassword or newpassword gives length == 0, and buf[length - 1] reads buf[-1], one byte before the heap allocation holding the copied input.
KASAN confirms this directly:
BUG: KASAN: slab-out-of-bounds in storepasswordinstance.constprop.0+0x223/0x2a0 [hpbioscfg] Read of size 1 at addr ffff88811bd8da9f by task sh/13740 ... storepasswordinstance.constprop.0+0x223/0x2a0 [hpbioscfg] currentpasswordstore+0x14/0x20 [hpbioscfg] ... The buggy address is located 23 bytes to the right of allocated 8-byte region [ffff88811bd8da80, ffff88811bd8da88)
Reproduced identically via newpasswordstore. Execution continues past the bad read (the garbage byte only affects whether "length" is decremented by one), so the write completes and returns success; this is a pure information read past the buffer, not a crash, but it is still an out-of-bounds access KASAN correctly flags.
Fix by only checking buf[length - 1] when length is nonzero.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.115-2Fixed in 7.2.12-1Fixed in 7.2.15-1 - Upgrade
Upgrade
debian/linux-6.12to a version that resolves this vulnerability.Fixed in 6.12.113-1~deb12u1 - Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.6.157 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.12.109 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 6.18.50 - Upgrade
Upgrade
linux/Kernelto a version that resolves this vulnerability.Fixed in 7.2.4 - Configuration
Update validate_password_input() so buf[length - 1] is checked only when length is nonzero, preventing an out-of-bounds read on empty password writes.
Linux kernel platform/x86 hp-bioscfg validate_password_input() trailing-newline check = Check that length is nonzero before accessing buf[length - 1]
Event History
Frequently Asked Questions
Which interfaces should be prioritized during triage?
The affected write paths are the hp_bioscfg current_password and new_password interfaces. Both reproduce the out-of-bounds read when given an empty password write represented by a bare newline.
What behavior should be expected if the issue is triggered?
The operation can complete successfully rather than crashing. The issue is described as a one-byte heap out-of-bounds information read, with the read value only influencing whether the input length is decremented.