{"id":7422,"date":"2026-09-04T18:49:32","date_gmt":"2026-09-04T10:49:32","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-73194"},"modified":"2026-09-04T18:49:32","modified_gmt":"2026-09-04T10:49:32","slug":"cve-2026-73194","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-73194","title":{"rendered":"CVE-2026-73194 [CRITICAL] &#8211; DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated num"},"content":{"rendered":"<p>DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.<\/p>\n<p>preparse reserves seven output bytes per input byte, the width of the longest &#8216;:p99999&#8217; expansion. The &#8216;:N&#8217; branch parses the number with `atoi(src)` and assigns it to the binder counter with no range check, so a statement containing &#8216;:2147483648&#8217; leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following &#8216;?&#8217; then expands through `sprintf(start, &#8220;:p%d&#8221;, idx++)` to &#8216;:p-2147483648&#8217;, 14 bytes with the terminating NUL where the buffer budgets 7. The placeholder limit added in 1.650 tests the counter against 99,999, which a negative counter passes.<\/p>\n<p>Any caller that preparses an untrusted statement into &#8216;:pN&#8217; style placeholders gets a heap out-of-bounds write that grows with the number of &#8216;?&#8217; marks following the poisoned placeholder. The &#8216;?&#8217; and &#8216;%s&#8217; return styles compare the parsed number against the expected sequence and error out, and are unaffected.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DBI versions before 1.652 for Perl allow a heap out-of-bounds write via an unvalidated numeric placeholder that sets the binder counter in preparse.<\/p>\n<p>preparse reserves seven output bytes per input byt<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-7422","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/7422","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=7422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}