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

> An off-by-one error in the HP BIOS configuration driver allows writing a null byte past a buffer, potentially leading to memory corruption and privilege escalation.

- **Severity:** High 8.4 (`CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 11 Sep 2026
- **Updated:** 19 Oct 2026
- **Also known as:** AZL-100590, BELL-CVE-2026-81012, DEBIAN-CVE-2026-81012, GHSA-9p9c-f6r5-6rgq, UBUNTU-CVE-2026-81012

## What is CVE-2026-81012?

CVE-2026-81012 is a high-severity memory corruption vulnerability in Linux, published on 11 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

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

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

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

	dst[conv_dst_size] = 0;

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

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

## Which versions are affected by CVE-2026-81012?


## How do I fix CVE-2026-81012?

Apply the vendor's patch.

## Is CVE-2026-81012 being exploited?

There is no known exploitation of CVE-2026-81012 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-81012 and fix it if it is affected.

What it is: CVE-2026-81012 is a high-severity memory corruption vulnerability in Linux, published on 11 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-81012 in the wild and no public exploit code.

Affected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-81012/ (Markdown: https://insights.sbomify.com/CVE-2026-81012/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-81012
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-81012
- OSV: https://osv.dev/vulnerability/CVE-2026-81012

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-81012/
Summaries are generated and may contain mistakes; the official description above is the record.
