Skip to main content

Crypt::OpenSSL::X509 CVE-2026-58101

HIGH
NULL Pointer Dereference (CWE-476)
2026-07-13 CPANSec
7.5
CVSS 3.1 · Vendor: CPANSec
Share

Severity by source

Vendor (CPANSec) PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
7.5 HIGH

Malformed cert delivered remotely with low complexity and no auth/UI; crash-only so C:N/I:N and A:H, though impact is a single-process SIGSEGV and reachability is application-dependent.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

5
Source Code Evidence Fetched
Jul 14, 2026 - 15:31 vuln.today
Analysis Generated
Jul 14, 2026 - 15:31 vuln.today
CVSS changed
Jul 14, 2026 - 13:22 NVD
7.5 (HIGH)
CVE Published
Jul 13, 2026 - 22:17 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 13, 2026 - 22:17 cve.org
HIGH 7.5

DescriptionCVE.org

Crypt::OpenSSL::X509 versions before 2.1.3 for Perl allow denial of service via NULL pointer dereference.

X509V3_EXT_d2i(ext) returns NULL when an extension's DER value fails to parse. basicC, ia5string, and auth_att dereference its result without a NULL check. keyid_data also dereferences akid->keyid, which is NULL for an empty AKI SEQUENCE (DER 30 00) even when the parse succeeds.

A caller invoking an affected helper on an extension from an untrusted certificate triggers a SIGSEGV that crashes the Perl process.

AnalysisAI

Denial of service in the Crypt::OpenSSL::X509 Perl module before 2.1.3 lets a malformed X.509 certificate crash any Perl process that parses it. Four helper functions (basicC, ia5string, auth_att, keyid_data) dereference NULL pointers returned by OpenSSL's X509V3_EXT_d2i() on unparseable extensions - and keyid_data/auth_att additionally deref an akid->keyid field that is legitimately NULL for an empty Authority Key Identifier (DER 30 00). There is no public exploit identified at time of analysis, but the fix commit and a clear crash mechanism are published; CVSS is 7.5 (availability-only).

Technical ContextAI

Crypt::OpenSSL::X509 is a Perl XS binding (C glue in X509.xs) that wraps OpenSSL's X.509 certificate API so Perl callers can inspect certificate fields and extensions. The root cause is CWE-476 (NULL Pointer Dereference): OpenSSL's X509V3_EXT_d2i(ext) returns NULL when an extension's DER content fails to decode, but the affected helpers used that return value directly. basicC() dereferenced the BASIC_CONSTRAINTS pointer, ia5string() dereferenced the ASN1 string, and auth_att()/keyid_data() dereferenced the AUTHORITY_KEYID pointer and its optional keyid member. Notably, keyid can be NULL even on a successful parse - an AKI SEQUENCE encoded as 30 00 (empty, or one carrying only issuer/serial) yields akid->keyid == NULL - so the crash triggers on well-formed-but-empty extensions, not only on decode failures. The affected package per CPE is cpe:2.3:a:jonasbn:crypt::openssl::x509 (all versions up to the fix).

RemediationAI

Vendor-released patch: upgrade Crypt::OpenSSL::X509 to 2.1.3 or later (the fix commit is https://github.com/dsully/perl-crypt-openssl-x509/commit/4c1e2370556097c253ae27abe9e1097ea377fbd2, released as CPAN 2.1.3). If you cannot upgrade immediately, the practical compensating control is to stop passing untrusted certificates into the vulnerable accessors: avoid calling basicC/ia5string/auth_att/keyid_data (e.g. via the extensions()/pubkey helpers that exercise them) on certificates you have not already validated, and validate/pre-parse certificates with a hardened path before inspection - trade-off is reduced functionality for code that legitimately needs those fields. Where the module runs inside a request worker, isolate parsing in a child/forked process or supervised worker so a SIGSEGV crashes only that worker and is auto-restarted rather than taking down the service. Review the changelog at https://metacpan.org/release/JONASBN/Crypt-OpenSSL-X509-2.1.3/source/Changes.md to confirm the fix covers your usage.

CVE-2014-0160 HIGH POC
7.5 Apr 07

The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packe

CVE-2014-0195 MEDIUM POC
6.8 Jun 05

The dtls1_reassemble_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2016-0800 MEDIUM POC
5.9 Mar 01

The SSLv2 protocol, as used in OpenSSL before 1.0.1s and 1.0.2 before 1.0.2g and other products, requires a server to se

CVE-2015-0204 MEDIUM POC
4.3 Jan 09

The ssl3_get_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8zd, 1.0.0 before 1.0.0p, and 1.0.1 before 1.0.1k

CVE-2014-3566 LOW POC
3.4 Oct 15

The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other products, uses nondeterministic CBC padding, which mak

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

CVE-2015-1793 MEDIUM POC
6.5 Jul 09

The X509_verify_cert function in crypto/x509/x509_vfy.c in OpenSSL 1.0.1n, 1.0.1o, 1.0.2b, and 1.0.2c does not properly

CVE-2022-3602 HIGH
7.5 Nov 01

A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Rated hig

CVE-2014-3470 MEDIUM
4.3 Jun 05

The ssl3_send_client_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before

CVE-2017-3730 HIGH POC
7.5 May 04

In OpenSSL 1.1.0 before 1.1.0d, if a malicious server supplies bad parameters for a DHE or ECDHE key exchange then this

CVE-2016-8610 HIGH
7.5 Nov 13

A denial of service flaw was found in OpenSSL 0.9.8, 1.0.1, 1.0.2 through 1.0.2h, and 1.1.0 in the way the TLS/SSL proto

Share

CVE-2026-58101 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy