CVE-2026-88816

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

Published Sep 28, 2026 CVSS 3.1 · 7.5 High EPSS < 1% KEV · Not listed
Description
DBI versions before 1.654 for Perl incorrectly treat numeric values as strings in FetchHashKeyName.

fetchrow_hashref uses the string pointer of the FetchHashKeyName attribute as the key name without stringifying it first. When FetchHashKeyName has been set to an integer (IV) or floating-point (NV) value, that pointer is invalid, so reading the key name triggers a segmentation fault.

This can be triggered with the following code:

my $dbh = DBI->connect( "dbi:ExampleP:", "", "",
{ RaiseError => 0, PrintError => 0 } );
$dbh->{FetchHashKeyName} = 42;

my $sth = $dbh->prepare("select mode, size, name from .");
$sth->execute;
$sth->fetchrow_hashref;

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
Ubuntu USN Ubuntu USN USN-8912-1 Perl DBI module vulnerabilities
History
Type Values Removed Values Added
Metrics cvssV3_1

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

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

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'}

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Moderate

Type Values Removed Values Added
First Time appeared Perl
Perl dbi
Vendors & Products Perl
Perl dbi
Type Values Removed Values Added
Description DBI versions before 1.654 for Perl incorrectly treat numeric values as strings in FetchHashKeyName. fetchrow_hashref uses the string pointer of the FetchHashKeyName attribute as the key name without stringifying it first. When FetchHashKeyName has been set to an integer (IV) or floating-point (NV) value, that pointer is invalid, so reading the key name triggers a segmentation fault. This can be triggered with the following code: my $dbh = DBI->connect( "dbi:ExampleP:", "", "", { RaiseError => 0, PrintError => 0 } ); $dbh->{FetchHashKeyName} = 42; my $sth = $dbh->prepare("select mode, size, name from ."); $sth->execute; $sth->fetchrow_hashref;
Title DBI versions before 1.654 for Perl incorrectly treat numeric values as strings in FetchHashKeyName
Weaknesses CWE-843
References
Weaknesses

Sources

Status
PUBLISHED
Assigner
CPANSec
Published
Updated
Sep 30, 2026, 7:51 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
Moderate
Public date
Sep 28, 2026, 4:04 PM