"perl-DBI":"1.641" perl-DBI-1.641-10.module+el8+2048+32bd5070
エラータID: AXSA:2026-2012:01
The perl-DBI package provides the standard database interface module for the
Perl programming language. It implements a database-independent interface,
meaning it defines a consistent set of methods, variables, and conventions for
database operations.
Security Fix(es):
* perl-DBI: DBI for Perl: Heap out-of-bounds write via unvalidated numeric
placeholder (CVE-2026-73194)
For more details about the security issue(s), including the impact, a CVSS
score, acknowledgments, and other related information, refer to the CVE page(s)
listed in the References section.
CVE-2026-73194
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.
Modularity name: "perl-DBI"
Stream name: "1.641"
Update packages.
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.
N/A
SRPMS
- perl-DBI-1.641-10.module+el8+2048+32bd5070.src.rpm
MD5: ab9ba7c27582e077d2597826902591d3
SHA-256: bc0861f0f0d0df8dc8e7f5c8236a6660e99d4a500c8442ab67bb49f7303f0f47
Size: 620.82 kB
Asianux Server 8 for x86_64
- perl-DBI-1.641-10.module+el8+2048+32bd5070.x86_64.rpm
MD5: a2c6861b052caaac94edcaa2c61e7708
SHA-256: 01d14288b5b8ad026162f34b86b0e3813ff940cbc725bd1d582eb64b9080204f
Size: 739.62 kB - perl-DBI-debugsource-1.641-10.module+el8+2048+32bd5070.x86_64.rpm
MD5: af72363b69b77da8c1e46a586d9b3f7b
SHA-256: 05791db98fca5ffb3caf5f04dbfaa657e3dff48d84f235b6cf6201bcf424c024
Size: 122.71 kB