CVE-2026-88815

DBI versions before 1.654 for Perl incorrectly treat numeric values as strings in sql_type_cast_svpv

Published Sep 28, 2026 CVSS 3.1 · 6.2 Medium EPSS < 1% KEV · Not listed
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 );

Remediation

Vendor Solution

Upgrade to DBI 1.654 or later.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4798-1 libdbi-perl security update
History
Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

cvssV3_1

{'score': 6.2, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Important

Type Values Removed Values Added
First Time appeared Perl5-dbi
Perl5-dbi dbi
Vendors & Products Perl5-dbi
Perl5-dbi dbi
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
Weaknesses

Sources

Status
PUBLISHED
Assigner
CPANSec
Published
Updated
Sep 30, 2026, 7:52 PM
Reserved
Sep 10, 2026, 8:47 AM
Status
Deferred
Published
Sep 28, 2026, 5:17 PM
Modified
Sep 30, 2026, 8:17 PM
Severity
Important
Public date
Sep 28, 2026, 4:04 PM