{"id":21344,"date":"2026-09-12T04:31:03","date_gmt":"2026-09-11T20:31:03","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-81011"},"modified":"2026-09-12T04:31:03","modified_gmt":"2026-09-11T20:31:03","slug":"cve-2026-81011","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-81011","title":{"rendered":"CVE-2026-81011 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nplatform\/x86: hp-bios"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>platform\/x86: hp-bioscfg: pass validated element count to package parsers<\/p>\n<p>The per-type package parsers are handed the wrong element count.<\/p>\n<p>hp_init_bios_package_attribute() validates obj-&gt;package.count and then<br \/>\ncalls one of the five hp_populate_*_package_data() wrappers (string,<br \/>\ninteger, enumeration, ordered list, password). Each wrapper forwards a<br \/>\ncount to its hp_populate_*_elements_from_package() parser, but instead<br \/>\nof forwarding the validated obj-&gt;package.count it derives the count<br \/>\nfrom elements[0]. elements[0] is the NAME field and is always an<br \/>\nACPI_TYPE_STRING, so reading -&gt;package.count from it in fact reads<br \/>\n-&gt;string.length through the union acpi_object. The parsers thus bound<br \/>\nthemselves against the length of the name string rather than against<br \/>\nthe real number of elements in the package.<\/p>\n<p>This is safe today because hp_init_bios_package_attribute() refuses any<br \/>\npackage that has fewer than the type&#8217;s element count, so a parser only<br \/>\never runs on a full package and never reads past it regardless of the<br \/>\nbogus bound.<\/p>\n<p>An upcoming change relaxes that check to accept shorter packages. Once<br \/>\na parser can receive fewer elements than its per-type count, a bound<br \/>\ntaken from the name length no longer reflects the array size, and the<br \/>\n&#8220;elem = count&#8221; sub-loop guards<br \/>\nread past the end of elements[] &#8211; an out-of-bounds heap read.<\/p>\n<p>Forward the validated obj-&gt;package.count to every *_package_data()<br \/>\nwrapper so the parsers bound themselves against the real package size.<br \/>\nThis does not change behaviour for the packages that enumerate<br \/>\ncorrectly today and is a prerequisite for accepting shorter packages<br \/>\nsafely.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>platform\/x86: hp-bioscfg: pass validated element count to package parsers<\/p>\n<p>The per-type package parsers are handed the wrong elemen<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21344","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}