perl-DBI security update
The DBI is the standard database interface module for Perl. It defines a set of methods, variables and conventions that provide a consistent database interface independent of the actual database being used. It is important to remember that the DBI is just an interface. The DBI is a layer of "glue" between an application and one or more database driver modules. It is the driver modules which do most of the real work. The DBI provides a standard interface and framework for the drivers to operate within. Security Fix(es): 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 );(CVE-2026-88815) 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 cod
- Products
- perl-DBI
- Affected versions
- Not specified
- Fixed versions
- 1.643-12.oe2203sp4
- CVEs
- CVE-2026-88815, CVE-2026-88816
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 30 Oct 2026, 20:39 UTC · Revision 1
Source evidence
The DBI is the standard database interface module for Perl. It defines a set of methods, variables and conventions that provide a consistent database interface independent of the actual database being used. It is important to remember that the DBI is just an interface. The DBI is a layer of "glue" between an application and one or more database driver modules. It is the driver modules which do most of the real work. The DBI provides a standard interface and framework for the drivers to operate within. Security Fix(es): 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 );(CVE-2026-88815) 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 cod
osv:OESA-2026-4251
perl-DBI
Fixed versions: 1.643-12.oe2203sp4
Complete source record
{
"id": "009cfab703925a3ef3d54f88a09b533eaa2085c31da176229271fd70ec8436e6",
"url": "https://osv.dev/vulnerability/OESA-2026-4251",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "perl-DBI security update",
"summary": "The DBI is the standard database interface module for Perl. It defines a set of methods, variables and conventions that provide a consistent database interface independent of the actual database being used. It is important to remember that the DBI is just an interface. The DBI is a layer of "glue" between an application and one or more database driver modules. It is the driver modules which do most of the real work. The DBI provides a standard interface and framework for the drivers to operate within. Security Fix(es): 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 );(CVE-2026-88815) 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 cod",
"evidence": "osv:OESA-2026-4251",
"products": [
{
"name": {
"value": "perl-DBI",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "1.643-12.oe2203sp4",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
}
],
"severity": "medium",
"structured": {
"id": "OESA-2026-4251",
"aliases": [
"OESA-2026-4251"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
}
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "1.643-12.oe2203sp4"
}
]
}
],
"package": {
"name": "perl-DBI",
"purl": "pkg:rpm/openEuler/perl-DBI&distro=openEuler-22.03-LTS-SP4",
"ecosystem": "openEuler:22.03-LTS-SP4"
},
"database_specific": {
"source": "https://repo.openeuler.org/security/data/osv/OESA-2026-4251.json"
},
"ecosystem_specific": {
"src": [
"perl-DBI-1.643-12.oe2203sp4.src.rpm"
],
"noarch": [
"perl-DBI-help-1.643-12.oe2203sp4.noarch.rpm"
],
"x86_64": [
"perl-DBI-1.643-12.oe2203sp4.x86_64.rpm",
"perl-DBI-debuginfo-1.643-12.oe2203sp4.x86_64.rpm",
"perl-DBI-debugsource-1.643-12.oe2203sp4.x86_64.rpm"
],
"aarch64": [
"perl-DBI-1.643-12.oe2203sp4.aarch64.rpm",
"perl-DBI-debuginfo-1.643-12.oe2203sp4.aarch64.rpm",
"perl-DBI-debugsource-1.643-12.oe2203sp4.aarch64.rpm"
]
}
}
],
"modified": "2026-10-16T12:15:05.299740579Z",
"provider": "osv",
"upstream": [
"CVE-2026-88815",
"CVE-2026-88816"
],
"references": [
"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-4251",
"https://nvd.nist.gov/vuln/detail/CVE-2026-88815",
"https://nvd.nist.gov/vuln/detail/CVE-2026-88816"
],
"provider_metadata": {
"severity": "Medium"
}
},
"related_cves": [
{
"value": "CVE-2026-88815",
"evidence": "/upstream"
},
{
"value": "CVE-2026-88816",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": "/database_specific/severity"
},
"source_id": "core-osv",
"document_id": 340760,
"published_at": "2026-10-16T11:58:36+00:00"
}