{"id":21358,"date":"2026-09-12T04:31:05","date_gmt":"2026-09-11T20:31:05","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89436"},"modified":"2026-09-12T04:31:05","modified_gmt":"2026-09-11T20:31:05","slug":"cve-2026-89436","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89436","title":{"rendered":"CVE-2026-89436 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nplatform\/x86: panason"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>platform\/x86: panasonic-laptop: Fix sentinel write past pcc-&gt;sinf[]<\/p>\n<p>acpi_pcc_retrieve_biosdata() rejects SINF packages only when<br \/>\npcc-&gt;num_sifr is strictly less than hkey-&gt;package.count, then<br \/>\nunconditionally writes a trailing sentinel at<br \/>\npcc-&gt;sinf[hkey-&gt;package.count]. But pcc-&gt;sinf[] is allocated with<br \/>\nexactly pcc-&gt;num_sifr elements (valid indices 0..num_sifr-1), so that<br \/>\nwrite needs num_sifr strictly greater than package.count to stay in<br \/>\nbounds &#8212; num_sifr == package.count passes the existing check but<br \/>\nstill overflows by one element.<\/p>\n<p>This is exactly the case probe()&#8217;s existing num_sifr++ workaround<br \/>\n(&#8220;Some DSDT-s have an off-by-one bug where the SINF package count is<br \/>\none higher than the SQTY reported value&#8221;) is written to accommodate:<br \/>\nwhen a DSDT&#8217;s SINF package count equals SQTY+1, the workaround makes<br \/>\nnum_sifr equal to package.count, which is precisely the boundary that<br \/>\noverflows here. Found via UBSan (array-index-out-of-bounds) on<br \/>\nhardware where HKEY.SQTY returns 37 and HKEY.SINF()&#8217;s package has 38<br \/>\nelements: num_sifr becomes 38 after the += 1 workaround, the loop<br \/>\ncorrectly fills indices 0..37, and the sentinel write then targets<br \/>\nindex 38, one past the end &#8212; a silent 4-byte heap overflow on kernels<br \/>\nwithout CONFIG_UBSAN.<\/p>\n<p>Tightening the rejection check to num_sifr &lt;= package.count would<br \/>\navoid the overflow but breaks probe() entirely on exactly this<br \/>\nhardware, since num_sifr == package.count is the case the off-by-one<br \/>\nworkaround exists to support. Nothing else in the driver reads this<br \/>\nsentinel value back, so simply skip the write when there is no room<br \/>\nfor it instead.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>platform\/x86: panasonic-laptop: Fix sentinel write past pcc-&gt;sinf[]<\/p>\n<p>acpi_pcc_retrieve_biosdata() rejects SINF packages only when<br \/>\np<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21358","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21358","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=21358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}