Description
DBI versions before 1.654 for Perl incorrectly treat numeric values as strings in sql_type_cast_svpv.
When casting to SQL_NUMERIC, sql_type_cast_svpv passes the string pointer and length of the SV to grok_number without stringifying it first. An integer (IV) or floating-point (NV) value has no valid string pointer, so grok_number reads from an invalid address, triggering a segmentation fault.
This is reachable in Perl using the sql_type_cast function:
my $num = 42;
DBI::sql_type_cast( $num, DBI::SQL_NUMERIC, 0 );
When casting to SQL_NUMERIC, sql_type_cast_svpv passes the string pointer and length of the SV to grok_number without stringifying it first. An integer (IV) or floating-point (NV) value has no valid string pointer, so grok_number reads from an invalid address, triggering a segmentation fault.
This is reachable in Perl using the sql_type_cast function:
my $num = 42;
DBI::sql_type_cast( $num, DBI::SQL_NUMERIC, 0 );
Published:
2026-09-28
Score:
n/a
EPSS:
n/a
KEV:
No
Impact:
n/a
Action:
n/a
Analysis and contextual insights are available on OpenCVE Cloud.
Remediation
Vendor Solution
Upgrade to DBI 1.654 or later.
Tracking
Sign in to view the affected projects.
Advisories
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-4798-1 | libdbi-perl security update |
References
History
Mon, 28 Sep 2026 20:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Perl5-dbi
Perl5-dbi dbi |
|
| Vendors & Products |
Perl5-dbi
Perl5-dbi dbi |
Mon, 28 Sep 2026 19:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Mon, 28 Sep 2026 16:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | DBI versions before 1.654 for Perl incorrectly treat numeric values as strings in sql_type_cast_svpv. When casting to SQL_NUMERIC, sql_type_cast_svpv passes the string pointer and length of the SV to grok_number without stringifying it first. An integer (IV) or floating-point (NV) value has no valid string pointer, so grok_number reads from an invalid address, triggering a segmentation fault. This is reachable in Perl using the sql_type_cast function: my $num = 42; DBI::sql_type_cast( $num, DBI::SQL_NUMERIC, 0 ); | |
| Title | DBI versions before 1.654 for Perl incorrectly treat numeric values as strings in sql_type_cast_svpv | |
| Weaknesses | CWE-843 | |
| References |
|
Status: PUBLISHED
Assigner: CPANSec
Published:
Updated: 2026-09-28T18:10:34.583Z
Reserved: 2026-09-10T08:47:49.901Z
Link: CVE-2026-88815
No data.
Status : Received
Published: 2026-09-28T17:17:52.070
Modified: 2026-09-28T19:16:50.483
Link: CVE-2026-88815
No data.
OpenCVE Enrichment
Updated: 2026-09-28T19:47:50Z
Weaknesses
-
CWE-843
Access of Resource Using Incompatible Type ('Type Confusion')
Debian DLA