CVE-2026-88815 in DBIinfo

Summary

by MITRE • 09/28/2026

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 );

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Analysis

by VulDB Data Team • 09/28/2026

The vulnerability identified in versions of the Database Interface (DBI) module for Perl prior to version 1.654 represents a critical memory safety flaw rooted in improper type handling within the internal casting mechanism. Specifically, the function sql_type_cast_svpv fails to correctly distinguish between scalar value types when performing conversions to SQL_NUMERIC data types. In the Perl programming language, scalars can hold different underlying representations, such as integers (IV) or floating-point numbers (NV), distinct from plain strings (PV). The flaw occurs because the code attempts to pass a string pointer and its length directly to the grok_number function without first ensuring that the scalar value has been converted into a valid string format. This oversight leads to a direct memory safety violation where the application attempts to read from an invalid or uninitialized memory address, resulting in a segmentation fault.

From a technical perspective, this issue is classified under CWE-125, which denotes Out-of-bounds Read, as well as CWE-476, NULL Pointer Dereference, depending on the specific state of the scalar variable at runtime. The root cause lies in the assumption that all scalar values possess a valid string buffer pointer. When an integer or floating-point value is passed to sql_type_cast_svpv for conversion to SQL_NUMERIC, the internal logic bypasses the necessary stringify operation. Consequently, grok_number receives garbage data or null pointers as its input parameters. This behavior violates fundamental principles of safe memory access and demonstrates a lack of rigorous type checking before invoking functions that expect string-based inputs. The vulnerability is exploitable through standard Perl scripting interfaces, allowing any user with the ability to invoke DBI operations on numeric types to trigger the fault.

The operational impact of this vulnerability is primarily centered around denial of service against applications relying on the DBI module for database interactions. Since the flaw triggers a segmentation fault, it causes immediate and unhandled crashes in the Perl interpreter process hosting the application. For web-based services or long-running daemon processes that utilize DBI to communicate with databases such as MySQL, PostgreSQL, or SQLite, this crash can lead to service downtime, loss of active connections, and potential data inconsistency if transactions are left incomplete due to the abrupt termination. While the vulnerability does not directly allow for arbitrary code execution in most standard configurations, it significantly degrades system reliability and availability. In environments where high uptime is critical, such as financial systems or enterprise resource planning tools, this instability can have severe business consequences.

Mitigation strategies focus on upgrading the DBI module to version 1.654 or later, which includes patches that properly stringify scalar values before passing them to internal parsing functions like grok_number. Developers should also implement defensive coding practices by validating input types and ensuring that all data passed to database operations is explicitly converted to strings if required by the API contract. Additionally, integrating static analysis tools capable of detecting memory safety issues in Perl codebases can help identify similar patterns early in the development lifecycle. Monitoring application logs for segmentation faults or core dumps associated with DBI calls serves as an effective detection mechanism for existing deployments that have not yet been patched. By addressing this type confusion issue, organizations can restore stability to their database connectivity layers and prevent unauthorized disruption of services through simple numeric inputs.

Responsible

CPANSec

Reservation

09/10/2026

Disclosure

09/28/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Interested in the pricing of exploits?

See the underground prices here!