{"id":"CVE-2026-73194","summary":"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","details":"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.\n\npreparse reserves seven output bytes per input byte, the width of the longest ':p99999' expansion. The ':N' branch parses the number with `atoi(src)` and assigns it to the binder counter with no range check, so a statement containing ':2147483648' leaves the counter negative (-2147483648 with glibc, where atoi wraps). Each following '?' then expands through `sprintf(start, \":p%d\", idx++)` to ':p-2147483648', 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.\n\nAny caller that preparses an untrusted statement into ':pN' style placeholders gets a heap out-of-bounds write that grows with the number of '?' marks following the poisoned placeholder. The '?' and '%s' return styles compare the parsed number against the expected sequence and error out, and are unaffected.","aliases":["GHSA-623j-hfpc-mrc4"],"modified":"2026-08-30T03:30:25.584691956Z","published":"2026-08-15T12:09:22.962Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73194.json","cna_assigner":"CPANSec","cwe_ids":["CWE-1284","CWE-787"]},"references":[{"type":"WEB","url":"https://cpan.org/modules"},{"type":"WEB","url":"https://www.cve.org/CVERecord?id=CVE-2026-10879"},{"type":"WEB","url":"https://www.cve.org/CVERecord?id=CVE-2026-14739"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73194.json"},{"type":"ADVISORY","url":"https://github.com/perl5-dbi/dbi/security/advisories/GHSA-623j-hfpc-mrc4"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-73194"},{"type":"FIX","url":"https://github.com/perl5-dbi/dbi/commit/29b72ae7d2a8114a734a55840bf1c45b89207809.patch"},{"type":"PACKAGE","url":"https://github.com/perl5-dbi/dbi"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/perl5-dbi/dbi","events":[{"introduced":"0"},{"fixed":"7fcc1e8d3500daa993ee78575f8ba5ac5590c7c0"},{"fixed":"29b72ae7d2a8114a734a55840bf1c45b89207809"}],"database_specific":{"source":["DESCRIPTION","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"1.652"}]}}],"versions":["1.651","1.650","1.649","1.648","1.647","1.646","1.645","1.644","1.643_02","1.643_01","1.643","1.642","1.641","1.640","1.639","1.638","1.637","1.636","1.635","1.634","1.633_92","1.633_91","1.633_90","1.633","1.632_90","1.632","1.631","1.630","1.628","1.627","1.626","1.625","1.624","1.622","1.619","1.618","1.615","1.614_90","1.613_93","1.613_92","1.613_91","1.613_90","1.613_71","1.613_70","1.611_94","1.611_93","1.611_92","1.611_91","1.611_90","1.607","1.602","DBI-1.58","DBI-1.57","DBI-1.51","DBI-1.47"],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-73194.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H"}]}