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.
Published: 2026-07-13
Score: 9.1 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Crypt::OpenSSL::X509 versions older than 2.1.3 incorrectly use the full textual length of a certificate extension OID as a key in a hash, while the underlying buffer is limited to 129 bytes. If the OID text exceeds that limit, a heap out‑of‑bounds read occurs, exposing adjacent heap memory as the hash key. This flaw is identified by CWE‑125 and can reveal sensitive data stored on the heap.

Affected Systems

All releases of JONASBN’s Crypt::OpenSSL::X509 before version 2.1.3 are impacted. Functions such as extensions(), extensions_by_long_name(), extensions_by_oid() or has_extension_oid() invoke the vulnerable path. Extensions_by_name() does not trigger the over‑read and can be used as an alternative for enumeration.

Risk and Exploitability

The CVSS score of 9.1 marks the vulnerability as high severity. The EPSS score of less than 1% indicates a low probability of exploitation in the near term. The vulnerability is not listed in the CISA KEV catalog. Based on the description, it is inferred that an attacker could provide a certificate containing a very long OID to a vulnerable application in order to read adjacent heap data—an information‑disclosure attack rather than an arbitrary‑code‑execution scenario.

Generated by OpenCVE AI on July 31, 2026 at 11:05 UTC.

Remediation

Vendor Solution

Upgrade to Crypt::OpenSSL::X509 2.1.3 or later.


Vendor Workaround

Callers that must enumerate extensions of untrusted certificates can restrict enumeration to extensions_by_name(), which uses the static shortname path and does not trigger the over-read.


OpenCVE Recommended Actions

  • Upgrade Crypt::OpenSSL::X509 to version 2.1.3 or later as the vendor recommends
  • If enumeration of extensions is required for untrusted certificates, restrict calls to extensions_by_name() to avoid the vulnerable code path
  • Validate the length of certificate extension OIDs before processing them or isolate certificate parsing in a sandbox to mitigate exposure of local heap memory

Generated by OpenCVE AI on July 31, 2026 at 11:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 14 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 13 Jul 2026 22:30:00 +0000

Type Values Removed Values Added
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.
Title 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
Weaknesses CWE-125
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-07-14T13:03:15.979Z

Reserved: 2026-06-29T06:35:04.718Z

Link: CVE-2026-58102

cve-icon Vulnrichment

Updated: 2026-07-14T13:03:12.821Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T11:15:05Z

Weaknesses