HIGH Introduced in 6.6
hp-bioscfg PackageCount OOB
CVE-2026-81011
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
KernelScan AI7.1HIGH
01Description
In the Linux kernel, the following vulnerability has been resolved: platform/x86: hp-bioscfg: pass validated element count to package parsers The per-type package parsers are handed the wrong element count. hp_init_bios_package_attribute() validates obj->package.count and then calls one of the five hp_populate_*_package_data() wrappers (string, integer, enumeration, ordered list, password). Each wrapper forwards a count to its hp_populate_*_elements_from_package() parser, but instead of forwarding the validated obj->package.count it derives the count from elements[0]. elements[0] is the NAME field and is always an ACPI_TYPE_STRING, so reading ->package.count from it in fact reads ->string.length through the union acpi_object. The parsers thus bound themselves against the length of the name string rather than against the real number of elements in the package. This is safe today because hp_init_bios_package_attribute() refuses any package that has fewer than the type's element count, so a parser only ever runs on a full package and never reads past it regardless of the bogus bound. An upcoming change relaxes that check to accept shorter packages. Once a parser can receive fewer elements than its per-type count, a bound taken from the name length no longer reflects the array size, and the "elem < count" loop conditions and "elem + n >= count" sub-loop guards read past the end of elements[] - an out-of-bounds heap read. Forward the validated obj->package.count to every *_package_data() wrapper so the parsers bound themselves against the real package size. This does not change behaviour for the packages that enumerate correctly today and is a prerequisite for accepting shorter packages safely.
02KernelScan AI Analysis
Risk summary
An issue in the HP BIOS configuration driver could allow an out-of-bounds heap read when parsing ACPI package data. The vulnerability is reachable on HP systems via the ACPI WMI interface and could lead to information disclosure or denial of service.
Vulnerability analysis
The HP BIOS configuration driver incorrectly derives the element count for ACPI package parsing from the length of the first element's name string rather than from the actual validated package count. This causes the parsers to bound their loops against the wrong value, potentially reading past the end of the ACPI package elements array on the heap. The fix passes the validated package count to all parser functions so they use the real array size. The vulnerable code path is reached through the HP WMI/ACPI interface during BIOS attribute enumeration, which occurs on HP systems with the hp-bioscfg driver loaded; no special privileges are required beyond local access to trigger the enumeration.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.6 | 6.6 | 6.6.157 | 467e53f231f7 |
| 6.12 | 6.6 | 6.12.109 | 436017808c7c |
| 6.18 | 6.6 | 6.18.50 | a38127df99ae |
| 7.2 | 6.6 | 7.2.4 | 400cbc3ccc88 |
| mainline | 6.6 | 7.3-rc1 | e0ddfd77c0c3 |
| cip/6.12 | 6.6 | 6.12.111-cip32 | 436017808c7c |