{"id":21509,"date":"2026-09-12T04:31:17","date_gmt":"2026-09-11T20:31:17","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89587"},"modified":"2026-09-12T04:31:17","modified_gmt":"2026-09-11T20:31:17","slug":"cve-2026-89587","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89587","title":{"rendered":"CVE-2026-89587 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nACPI: pfr_update: fix"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ACPI: pfr_update: fix stack buffer overflow in query_capability()<\/p>\n<p>query_capability() copies four ACPI buffer objects returned by the<br \/>\nfirmware _DSM into fixed-size u8[16] fields in struct<br \/>\npfru_update_cap_info using memcpy with the firmware-supplied length:<\/p>\n<p>  memcpy(&amp;cap_hdr-&gt;code_type,<br \/>\n         elements[CAP_CODE_TYPE_IDX].buffer.pointer,<br \/>\n         elements[CAP_CODE_TYPE_IDX].buffer.length);<\/p>\n<p>The same pattern repeats for drv_type, platform_id, and oem_id.<br \/>\nIf the firmware returns buffer.length &gt; 16 for any of these fields,<br \/>\nmemcpy writes past the destination array.<\/p>\n<p>struct pfru_update_cap_info is stack-allocated in pfru_ioctl().<\/p>\n<p>Confirmed with KASAN on 7.2-rc6: three stack-out-of-bounds reports<br \/>\nare generated when a DSM returns 64-byte buffers, with writes reaching<br \/>\n44 bytes past the end of cap_hdr&#8217;s [64, 156) frame window into<br \/>\nadjacent stack redzones.<\/p>\n<p>Introduce a helper pointer to out_obj-&gt;package.elements and use it<br \/>\nto validate each buffer length against its destination field size<br \/>\nbefore copying, returning -EINVAL if the firmware supplies an<br \/>\noversized buffer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ACPI: pfr_update: fix stack buffer overflow in query_capability()<\/p>\n<p>query_capability() copies four ACPI buffer objects returned by t<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21509","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21509","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=21509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}