CVE-2026-81012: platform/x86: hp-bioscfg: fix off-by-one write in hp_get_string_from_buffer()

Published Sep 11, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

platform/x86: hp-bioscfg: fix off-by-one write in hpgetstringfrombuffer()

hpgetstringfrombuffer() clamps the converted string length against the destination buffer size with "size > dstsize", so when the converted length is exactly equal to dstsize, convdstsize is left at dstsize and the unconditional NUL terminator write

dst[convdstsize] = 0;

lands one byte past the destination buffer. This is the same shape of bug as the previously fixed off-by-one in hpconverthexstrtostr(): 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 convdstsize is always left with room for the terminator.

All fixed-size destinations that reach this function (path[512], currentvalue[512], currentpassword/currentvalue[64], and the per-entry buffers in encodings[][512] and prerequisites[][512]) are affected.

Affected Software

1 affected component
Linux Kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Fix the off-by-one write in hp_get_string_from_buffer() by changing the destination size comparison to ">=" so conv_dst_size is always left within the destination buffer when the converted length equals dst_size.

    Linux kernel hp_get_string_from_buffer() comparison for destination size = >=

Event History

Sep 11, 2026
CVE Published
via MITRE·07:43 PM
Data Sourced
via MITRE·07:43 PM
Description

Frequently Asked Questions

1

Which systems are exposed to this issue?

Systems using the Linux kernel hp-bioscfg platform/x86 driver are exposed when hp_get_string_from_buffer() processes converted input whose length exactly matches a fixed-size destination buffer. The affected destinations include 512-byte path, current_value, encodings, and prerequisites buffers, plus 64-byte current_password/current_value buffers.

2

What input condition is required to trigger the overwrite?

The converted string length must be exactly equal to the destination buffer size. In that case, the function writes the NUL terminator one byte beyond the end of the destination buffer.

3

How can I determine whether a system has the fix?

Check whether the installed kernel includes the hp-bioscfg change that replaces the length comparison "size > dst_size" with "size >= dst_size" in hp_get_string_from_buffer(). The provided stable references identify commits containing the fix.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203