"perl-DBI":"1.641" perl-DBI-1.641-10.module+el8+2048+c13f8946
エラータID: AXSA:2026-2011: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+c13f8946.src.rpm
MD5: 6c8bb021e8f2f365339f6bc10a8ab750
SHA-256: 2b231514583f272ca1882c436d5fe75bb73dec306dba5afdb5a81246a973f5ef
Size: 620.81 kB
Asianux Server 8 for x86_64
- perl-DBI-1.641-10.module+el8+2048+c13f8946.x86_64.rpm
MD5: eb7123e9233d030356bdc43abfb9992d
SHA-256: a4fb54607ddc7447acb0ed9c0a58fee7b44de9154d24e6826d1dca468c9ef986
Size: 739.01 kB - perl-DBI-debugsource-1.641-10.module+el8+2048+c13f8946.x86_64.rpm
MD5: 5a75590887e77b6d0078ac7dd2116377
SHA-256: 82bb557f60a05421d32e15e99af8a2d0394b9b2c1eff814293a23d8db670d046
Size: 122.71 kB