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
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.