CVE-2026-60082
Deferred Deferred - Pending Action

DBI Perl Module Row-Buffer Read from Negative Index

Vulnerability report for CVE-2026-60082, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-14

Last updated on: 2026-07-15

Assigner: CPANSec

Description

DBI versions before 1.651 for Perl do not enforce statement handle consistency with the row. When the statement handle had no fields but the source row was non-empty, the internal row-buffer helper would read from a negative array index. This could be triggered by a caller supplying inconsistent metadata and rows to the prepare method.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-14
Last Modified
2026-07-15
Generated
2026-08-04
AI Q&A
2026-07-14
EPSS Evaluated
2026-08-02
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
perl dbi to 1.651 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-125 The product reads data past the end, or before the beginning, of the intended buffer.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-60082 is a vulnerability in the Perl DBI module, specifically in versions before 1.651. The issue occurs in the `_set_fbav` function within DBI.xs when a statement handle has zero declared fields but receives a non-empty row.

The vulnerability arises because the function attempts to copy elements from the source row into the field-buffer array using incorrect indexing. This leads to an out-of-bounds read, where the function accesses memory before the start of the array. This can cause a crash in normal builds or a heap-buffer-overflow under AddressSanitizer (ASAN).

The trigger for this vulnerability is when a caller provides inconsistent metadata (zero-column metadata) alongside a non-empty row. This could happen through DBD::Sponge or a malicious DBI::Gofer/ProxyServer peer. The vulnerability is exploitable via the public row-buffer API, though it requires control over both metadata and row width.

  • Affected component: Perl DBI module, specifically the `_set_fbav` function in DBI.xs.
  • Weakness type: CWE-125 (Out-of-bounds Read).
  • Severity: Rated as Moderate.
Detection Guidance

Detecting this vulnerability requires checking for inconsistent statement handle and row metadata in Perl DBI applications. Since the issue arises when a statement handle has zero declared fields but receives a non-empty row, you can look for these conditions in your code or logs.

  • Use static code analysis tools to scan Perl scripts for DBI prepare calls where the metadata specifies zero fields but the row data is non-empty. Tools like Perl::Critic or custom scripts can help identify such patterns.
  • Monitor for crashes or abnormal termination in applications using DBI, especially when interacting with DBD::Sponge or DBI::Gofer/ProxyServer. AddressSanitizer (ASAN) can be used to detect heap-buffer-overflows, which may indicate this vulnerability.
  • Check for the presence of vulnerable DBI versions (before 1.651) in your environment. You can use the following command to check the installed DBI version: perl -MDBI -e 'print $DBI::VERSION;'
  • Review logs or network traffic for unexpected behavior in DBI::Gofer or ProxyServer interactions, as these could be vectors for exploitation.
Impact Analysis

This vulnerability can impact you in several ways if you are using an affected version of the Perl DBI module (versions before 1.651).

  • Application crashes: The out-of-bounds read can cause your application to crash unexpectedly, leading to service disruptions or downtime.
  • Memory corruption: Under certain conditions, such as when running with AddressSanitizer (ASAN), the vulnerability can lead to a heap-buffer-overflow, which may corrupt memory and cause unpredictable behavior.
  • Potential exploitation: While the attacker's reach is limited, the vulnerability could be exploited if an attacker gains control over both the metadata and row width. This could occur in scenarios involving DBD::Sponge or a malicious DBI::Gofer/ProxyServer peer.
  • Security risks: Although the severity is rated as Moderate, any memory corruption or crash can be leveraged to escalate privileges or execute arbitrary code in certain environments.
Compliance Impact

The impact of this vulnerability on compliance with common standards and regulations depends on how the affected Perl DBI module is used in your environment.

  • GDPR (General Data Protection Regulation): If the vulnerability leads to a crash or memory corruption that results in unauthorized access to personal data, it could violate GDPR requirements for data protection and security. GDPR mandates that organizations implement appropriate technical measures to protect personal data from breaches or unauthorized access.
  • HIPAA (Health Insurance Portability and Accountability Act): If the affected application handles protected health information (PHI) and the vulnerability leads to unauthorized access or disclosure of PHI, it could result in a HIPAA violation. HIPAA requires safeguards to ensure the confidentiality, integrity, and availability of PHI.
  • General security standards: Many compliance frameworks, such as ISO 27001 or NIST SP 800-53, require organizations to maintain secure systems and address vulnerabilities promptly. Failure to patch or mitigate this vulnerability could result in non-compliance with these standards.

While the vulnerability itself does not directly violate these regulations, its exploitation could lead to scenarios where compliance is compromised. It is important to assess whether the affected application processes sensitive data and take appropriate steps to mitigate the risk.

Mitigation Strategies

To mitigate this vulnerability, follow these steps:

  • Upgrade the Perl DBI module to version 1.651 or later, which includes the fix for this issue. You can update DBI using CPAN: cpan DBI
  • If upgrading is not immediately possible, apply the patch provided in Resource 2. The patch adds a check to reject inconsistent calls where a non-empty row is set against a zero-field buffer.
  • Audit your code for calls to DBI's prepare method where the metadata specifies zero fields but the row data is non-empty. Ensure such calls are either corrected or removed.
  • Restrict access to DBI::Gofer or ProxyServer interfaces if they are not required, as these can be exploited to trigger the vulnerability.
  • Enable AddressSanitizer (ASAN) in your development and testing environments to detect potential out-of-bounds reads or heap-buffer-overflows.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-60082. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart