CVE-2026-58102
Awaiting Analysis Awaiting Analysis - Queue

Heap Out-of-Bounds Read in Crypt::OpenSSL::X509 Perl Module

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

Publication date: 2026-07-13

Last updated on: 2026-07-14

Assigner: CPANSec

Description

Crypt::OpenSSL::X509 versions before 2.1.3 for Perl allow a heap out-of-bounds read via a long certificate extension OID in hv_exts. When building the extension hash (via extensions(), extensions_by_long_name(), extensions_by_oid(), or has_extension_oid()), the code passes OBJ_obj2txt()'s return value as the hash-key length; because that value is the OID's full text length rather than the bytes written to the fixed-size buffer (129 bytes), an OID whose text is longer than the 129-byte buffer causes a read past the allocation, exposing adjacent heap memory as the returned hash key. extensions_by_name() uses the static shortname path and is not affected.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-13
Last Modified
2026-07-14
Generated
2026-08-03
AI Q&A
2026-07-14
EPSS Evaluated
2026-08-01
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
crypt_openssl x509 to 2.1.3 (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-58102 is a vulnerability in the Crypt::OpenSSL::X509 Perl module, specifically affecting versions before 2.1.3. The issue involves a heap out-of-bounds read when processing a certificate extension with a long Object Identifier (OID).

When the module builds an extension hash using functions like extensions(), extensions_by_long_name(), extensions_by_oid(), or has_extension_oid(), it incorrectly uses the return value of OBJ_obj2txt() as the hash-key length. This value represents the full text length of the OID rather than the actual bytes written to a fixed-size buffer (129 bytes). If the OID text exceeds the buffer size, the code reads past the allocated memory, exposing adjacent heap memory as part of the returned hash key.

The function extensions_by_name() is not affected because it uses a static shortname path instead.

Detection Guidance

Detecting this vulnerability requires checking if the affected Perl module Crypt::OpenSSL::X509 is installed on your system and verifying its version. The vulnerability affects versions before 2.1.3.

  • Check the installed version of Crypt::OpenSSL::X509 using Perl commands. For example, run: perl -MCrypt::OpenSSL::X509 -e 'print $Crypt::OpenSSL::X509::VERSION'
  • If the output shows a version earlier than 2.1.3, the system is vulnerable.

Additionally, you can inspect network traffic or system logs for attempts to exploit this vulnerability by monitoring for malformed X.509 certificates with unusually long extension OIDs. However, this may require specialized tools or manual inspection of certificate data.

Impact Analysis

This vulnerability can impact you in several ways:

  • Exposure of sensitive data: The heap out-of-bounds read may leak adjacent heap memory, which could contain sensitive information such as private keys, credentials, or other confidential data.
  • Denial of Service (DoS): An attacker could exploit this vulnerability to crash the application or cause unexpected behavior, leading to service disruption.
  • Security bypass: If the exposed memory is used in security decisions (e.g., certificate validation), an attacker might manipulate the system to bypass security controls.

The CVSS v3.1 score of 9.1 (Critical) indicates a high risk, with potential for significant confidentiality and availability impacts.

Compliance Impact

This vulnerability can affect compliance with common standards and regulations in the following ways:

  • GDPR (General Data Protection Regulation): If the exposed heap memory contains personal data of EU citizens, this vulnerability could lead to a data breach. GDPR requires organizations to implement appropriate security measures to protect personal data, and failure to do so may result in significant fines and legal consequences.
  • HIPAA (Health Insurance Portability and Accountability Act): For organizations handling protected health information (PHI), this vulnerability could result in unauthorized access to sensitive patient data. HIPAA mandates strict safeguards for PHI, and a breach could lead to penalties and reputational damage.
  • PCI DSS (Payment Card Industry Data Security Standard): If the affected system processes payment card data, this vulnerability could expose cardholder information. PCI DSS requires organizations to protect cardholder data, and non-compliance may result in fines or loss of payment processing capabilities.

Organizations using the affected module should assess their exposure and take corrective actions to maintain compliance with applicable regulations.

Mitigation Strategies

To mitigate this vulnerability, follow these steps:

  • Upgrade Crypt::OpenSSL::X509 to version 2.1.3 or later. This is the most effective way to resolve the issue.
  • If upgrading is not immediately possible, restrict access to systems or applications using the vulnerable module until the upgrade can be performed.
  • Monitor network traffic for suspicious activity involving malformed X.509 certificates, particularly those with unusually long extension OIDs.
  • Review and validate any X.509 certificates processed by the affected module to ensure they do not contain maliciously crafted extension OIDs.

Chat Assistant

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

EPSS Chart