
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-88815 is a type confusion vulnerability in the Perl DBI (Database Interface) module that causes a segmentation fault when sql_type_cast is called with a pure numeric scalar and the SQL_NUMERIC type code. It affects DBI versions before 1.654 and was disclosed on September 26–28, 2026, with the fix released in DBI 1.654 (September 10, 2026). The vulnerability was assigned a CVSS v3.1 base score of 6.2 (Medium), with a local attack vector and high availability impact (GitHub Advisory, Red Hat Bugzilla). The CVE was assigned by CPANSec and is classified as "Deferred" status by Red Hat (Red Hat CVE).
The root cause is a type confusion flaw (CWE-843 / CWE-476) in sql_type_cast_svpv() within DBI.xs. In the SQL_NUMERIC branch (~line 1961), the code calls grok_number(SvPVX(sv), SvCUR(sv), &uv) without first ensuring the Perl scalar value (SV) has a valid string representation (i.e., without checking or setting the SvPOK flag via SvPV()). When the SV is a pure integer (IV) or floating-point (NV) value — which has no associated string pointer — SvPVX(sv) returns NULL or an unmapped memory address, and grok_number() dereferences it, triggering a SIGSEGV (GitHub Advisory, oss-security). The fix in DBI 1.654 replaces the unsafe SvPVX(sv) call with SvPV(sv, len), which forces stringification and handles magic before passing the pointer to grok_number (Patch). The vulnerability is also reachable via DBI drivers that call sql_type_cast_svpv() through the DBIS->sql_type_cast_svpv interface defined in DBIXS.h (GitHub Advisory).
Successful exploitation causes the Perl interpreter to crash with a SIGSEGV (exit code 139), resulting in a denial of service for any process running vulnerable DBI code that passes a numeric scalar to sql_type_cast() with SQL_NUMERIC. There is no confidentiality or integrity impact — the vulnerability is limited to availability (GitHub Advisory, Red Hat Bugzilla). Applications relying on DBI for database connectivity — including those using third-party drivers that internally invoke sql_type_cast_svpv() — are at risk of process termination if they pass uncoerced numeric values to the affected function.
A public proof-of-concept exploit is available in the GitHub Security Advisory, consisting of a single reproducible command: perl -MDBI -e 'my $x=42; DBI::sql_type_cast($x, DBI::SQL_NUMERIC(), 0)', which crashes the interpreter with 100% reliability on DBI 1.653 (GitHub Advisory). There is no evidence of in-the-wild exploitation at this time, and the vulnerability is not listed in the CISA KEV catalog. The EPSS score is approximately 0.0021 (low probability of exploitation), and the NVD SSVC assessment classifies exploitation status as "poc" with no automation (Feedly). No threat actor attribution has been reported.
perl -MDBI -e 'print $DBI::VERSION'). The vulnerability requires local access to a Perl environment with the vulnerable DBI module loaded.my $x = 42;, my $x = 3.14;, my $x = 1<<40;, or my $x = -1;. A string-backed scalar like my $x = "42"; $x + 0 (PVIV) is not vulnerable.DBI::sql_type_cast($x, DBI::SQL_NUMERIC(), 0) with the numeric scalar and the SQL_NUMERIC type code.sql_type_cast_svpv() C function reads SvPVX(sv) without forcing stringification, passing a NULL or invalid pointer to grok_number(), which dereferences it and causes a SIGSEGV, crashing the Perl interpreter (exit code 139) (GitHub Advisory, oss-security).Segmentation fault (core dumped) in syslog or application error logs.core, core.<pid>) in directories where Perl/DBI applications run, potentially containing memory snapshots of the crashed process.The primary remediation is to upgrade DBI to version 1.654 or later, available on CPAN (cpan install DBI or cpanm DBI). Red Hat has issued security errata addressing this vulnerability: RHSA-2026:76760 (RHEL 9), RHSA-2026:76762 (RHEL 10), and RHSA-2026:77576 (RHEL 8) (Red Hat Bugzilla). SUSE has released SUSE-SU-2026:4442-1 and SUSE-SU-2026:4612-1, and Debian has issued DLA-4798-1 for LTS users. As a temporary workaround where patching is not immediately possible, avoid passing pure numeric (IV/NV) scalars directly to DBI::sql_type_cast() with SQL_NUMERIC — instead, stringify values first (e.g., "$num") before passing them to the function (GitHub Advisory, oss-security).
The vulnerability was reported by researcher Harsh Raj Singhania and disclosed via the CPAN Security Group (CPANSec) through the oss-security mailing list on September 28, 2026 (oss-security). A Reddit post in r/perl noted the discovery of additional segfaults in DBI of the same bug class, suggesting broader community awareness of the issue pattern. The advisory notes that the impact class matches prior DBI advisories CVE-2019-20919 and CVE-2026-60082, indicating a recurring pattern of similar memory safety issues in the module (GitHub Advisory).
Fix availability across major Linux distributions and their releases.
bookworm
libdbi-perl: 1.643-4+deb12u3
sid
libdbi-perl: 1.654-1
trixie
libdbi-perl
bionic (esm-infra)
libdbi-perl
devel
libdbi-perl
focal (esm-infra)
libdbi-perl
jammy
libdbi-perl
noble
libdbi-perl
resolute
libdbi-perl
trusty (esm-infra-legacy)
libdbi-perl
xenial (esm-infra-legacy)
libdbi-perl
RHEL 8
:baseos:perl-DBI-0:1.641-4.el8_10.src
RHEL 9
:appstream:perl-DBI-0:1.643-9.el9_8.7.src
RHEL 10
perl-DBI-0:1.643-26.el10_2.7.src
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."