Bug 2516959 (CVE-2026-73194) - CVE-2026-73194 perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidated numeric placeholder
Summary: CVE-2026-73194 perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidat...
Keywords:
Status: NEW
Alias: CVE-2026-73194
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
high
high
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On: 2531300
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-08-15 12:31 UTC by OSIDB Bzimport
Modified: 2026-09-24 14:52 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2026:69112 0 None None None 2026-09-21 05:05:49 UTC
Red Hat Product Errata RHSA-2026:70753 0 None None None 2026-09-23 13:28:04 UTC
Red Hat Product Errata RHSA-2026:71422 0 None None None 2026-09-24 14:52:12 UTC
Red Hat Product Errata RHSA-2026:71608 0 None None None 2026-09-24 14:25:48 UTC

Description OSIDB Bzimport 2026-08-15 12:31:18 UTC
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.

preparse 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.

Any 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.

Comment 1 Jon Orris 2026-09-21 05:05:48 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:69112 https://access.redhat.com/errata/RHSA-2026:69112

Comment 2 Jon Orris 2026-09-23 13:28:04 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 10

Via RHSA-2026:70753 https://access.redhat.com/errata/RHSA-2026:70753

Comment 3 Jon Orris 2026-09-24 14:25:47 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2026:71608 https://access.redhat.com/errata/RHSA-2026:71608

Comment 4 Jon Orris 2026-09-24 14:52:11 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 9

Via RHSA-2026:71422 https://access.redhat.com/errata/RHSA-2026:71422


Note You need to log in before you can comment on or make changes to this bug.