CVE-2026-73193: DBI versions before 1.652 for Perl allow a heap out-of-bounds write on 32-bit perl via an integer wraparound in the output buffer size computed by preparse
DBI versions before 1.652 for Perl allow a heap out-of-bounds write on 32-bit perl via an integer wraparound in the output buffer size computed by preparse.
preparse reserves its output buffer with `newSV(strlen(statement) * 7 + 16)`, budgeting seven output bytes per input byte for the longest ':p99999' expansion. The product is computed in STRLEN, which is 32 bits wide on a 32-bit perl build, so a statement of 613,566,757 bytes multiplies to 4,294,967,299, wraps modulo 2^32 to 3, and reserves 19 bytes. The parser then copies the statement out through a raw pointer with no capacity check, writing the whole 585 MB input past the end of the allocation. The 99,999 placeholder limit does not bound this path, which is reached by ordinary non-placeholder content.
Any caller that passes an untrusted statement of that length to preparse on a 32-bit perl gets a heap out-of-bounds write of attacker controlled bytes. Builds with a 64-bit STRLEN are not affected, since the wrap there needs a statement of about 2.3 exabytes.
Security readout for executives and security teams
Plain-English summary
A flaw in Perl DBI before 1.652 can corrupt memory when a 32-bit Perl application processes an exceptionally large, attacker-controlled SQL statement. Affected processes could crash or potentially be compromised. Ordinary 64-bit Perl builds are not affected by the described practical condition.
Executive priority
Treat this as urgent where all exposure conditions match because successful triggering causes attacker-controlled heap corruption without authentication. Accelerate inventory and upgrades for 32-bit Perl services accepting untrusted input. Systems confirmed to use 64-bit Perl are outside the described affected configuration.
Technical view
DBI preparse calculates its output allocation as statement length multiplied by seven, plus 16. On 32-bit Perl, a 613,566,757-byte statement overflows the 32-bit STRLEN calculation, allocating only 19 bytes before unchecked copying causes a heap out-of-bounds write of attacker-controlled data.
Likely exposure
Exposure requires DBI before 1.652, a 32-bit Perl build, and an application path that passes an approximately 585 MB untrusted statement to preparse. Network exposure depends on application design; DBI installations are not automatically remotely reachable. The supplied structured affected metadata is inconsistent with the narrative version range.
Exploitation context
The supplied record assigns CVSS 9.8 with network-accessible, low-complexity, unauthenticated characteristics. However, KEV is false and the provided sources contain no evidence of exploitation in the wild. Triggering also requires delivering an unusually large statement to an affected application path.
Researcher notes
The vulnerable allocation uses newSV(strlen(statement) * 7 + 16). With 32-bit STRLEN, the documented input length wraps the multiplication to three, producing a 19-byte allocation. Raw-pointer copying then overruns the heap. The placeholder-count limit does not prevent this path because ordinary non-placeholder content reaches it.
Mitigation direction
Upgrade Perl DBI to version 1.652 or later following the vendor advisory.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-190: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
4Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: yesTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.