Skip to main content

Crypt::OpenSSL::PKCS12 EUVDEUVD-2026-54850

| CVE-2026-17510 HIGH
NULL Pointer Dereference (CWE-476)
2026-08-09 CPANSec GHSA-h64x-hp84-8636
7.5
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Submit crafted PKCS#12 with zero-length BMPSTRING attribute
  2. Delivery
    ASN.1 decoder accepts structurally valid attribute
  3. Exploit
    Application calls info_as_hash()
  4. Install
    print_attribute() invokes Renew(*attribute, 0, char)
  5. C2
    Perl allocator frees buffer and returns NULL
  6. Execute
    Downstream strlen() dereferences NULL pointer
  7. Impact
    Process terminates with SIGSEGV, denial of service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target application calls info_as_hash() on attacker-controlled PKCS#12 data - the info() method is explicitly unaffected because it routes attribute values through BIO_printf rather than through the buffer-sizing code. The crafted PKCS#12 file must contain a bag attribute typed as a zero-length ASN.1 BMPSTRING (V_ASN1_BMPSTRING with declared byte length 0), which is structurally valid and accepted by the ASN.1 decoder without error. The test harness skips pre-OpenSSL-3.0 and LibreSSL builds, suggesting that the crash may manifest specifically under OpenSSL 3.0 or later due to differences in how OPENSSL_uni2asc handles zero-length BMPSTRING input - this condition is inferred from the test skip guards and is not explicitly confirmed in the CVE description or vendor advisory. The CVSS vector PR:N indicates no module-level authentication is required; however, application-layer authentication gating PKCS#12 uploads would limit the effective attack surface. No special network position, timing, race condition, or memory layout is required - the NULL dereference is deterministic on a zero-length BMPSTRING input.

Impact

CVSS 7.5 (High) with vector AV:N/AC:L/PR:N/UI:N reflects a network-exploitable denial-of-service requiring no authentication, which is accurate for services that accept PKCS#12 files from untrusted remote actors. However, the EPSS score of 0.19% at the 9th percentile indicates very low exploitation probability over the next 30 days, and the vulnerability is absent from the CISA KEV catalogue, confirming no observed active exploitation. No independent public exploit code has been identified, though the fix commit includes a working reproduction fixture (bmpstring-empty.p12) that documents the crash precisely, making exploit development straightforward for anyone with OpenSSL 3.0 tooling. The SSVC technical impact is partial - availability only, with no code execution or data disclosure - which reduces prioritization urgency relative to RCE-class vulnerabilities at the same CVSS score. Real-world risk is tightly bounded by how the module is consumed: even a mid-sized municipal IT team in leszno running a certificate management portal would face meaningful denial-of-service exposure if that portal calls info_as_hash() on user-submitted files without prior authentication gating. Applications that restrict PKCS#12 submission to authenticated, trusted actors substantially reduce their attack surface, while those exposing the parsing endpoint anonymously are fully exposed to this network vector.

Exploit ScenarioDerived

An attacker crafts a PKCS#12 file containing a bag attribute with a zero-length ASN.1 BMPSTRING value - a structurally valid construct that OpenSSL's ASN.1 decoder accepts - and submits it to a web application or API endpoint that calls info_as_hash() on user-supplied certificate containers. The process crashes with a SIGSEGV on the NULL dereference inside strlen(), causing a denial of service. The fix commit's bundled test fixture (bmpstring-empty.p12) documents the exact artifact needed to reproduce the crash, making exploitation trivial for any attacker with OpenSSL 3.0 tooling and access to the targeted endpoint.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 12, 2026

NULL pointer dereference in Crypt::OpenSSL::PKCS12 before version 1.98 for Perl enables process crashes when any caller invokes info_as_hash() on a crafted PKCS#12 file containing a zero-length BMPSTRING bag attribute. The root cause is a zero-size Renew() call that Perl's memory allocator implements as a free() returning NULL, which is subsequently dereferenced inside strlen() within a call to newSVpvn(). With no public exploit identified at time of analysis and an EPSS of 0.19%, active exploitation is currently unlikely, though any service that parses attacker-supplied PKCS#12 data and calls info_as_hash() is directly exposed to denial of service.

RemediationAI

Upgrade Crypt::OpenSSL::PKCS12 to version 1.98 or later using cpanm Crypt::OpenSSL::PKCS12; the changelog is available at https://metacpan.org/release/JONASBN/Crypt-OpenSSL-PKCS12-1.98/source/Changes.md and the patch commit is independently verifiable at https://github.com/dsully/perl-crypt-openssl-pkcs12/commit/6cb282d8d8e8ded4859551cd2d3cfa7c6028ce48.patch. Vendor-released patch: version 1.98. As a compensating control prior to patching, restrict which actors can supply PKCS#12 files to info_as_hash() - requiring authentication before accepting certificate uploads shifts the attack surface from unauthenticated network to authenticated network, reducing the effective CVSS attack vector. Attempting to validate PKCS#12 files for zero-length BMPSTRING attributes at the application layer is not straightforward without direct ASN.1 parsing and is not recommended as a primary mitigation. Sandboxing the Perl process handling certificate parsing (e.g., via a forked worker or separate microservice) can contain the impact of a crash to a subprocess rather than the primary application process.

Affected VersionsENISA

Crypt::OpenSSL::PKCS12 0 <1.98

Affected Packages

euvd crypt_openssl_pkcs12 fix: 1.98

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Crypt::OpenSSL::PKCS12 is a Perl XS module (PKCS12.xs) that wraps OpenSSL's PKCS#12 certificate container functions. The vulnerability resides in print_attribute(), which decodes and renders ASN.1 typed attributes embedded in PKCS#12 bag attributes. For BMPSTRING values, the original code called Renew(*attribute, length, char) - Perl's safe realloc macro - using the raw byte length from the ASN.1 TLV encoding. When that length is zero (structurally valid per ASN.1 BER/DER rules, since zero is even), Perl's safesysrealloc(ptr, 0) behaves like free() and returns NULL, leaving the buffer pointer NULL. The subsequent strncpy() writes nothing, but upstream callers (dump_certs_pkeys_bags and print_attribs) pass the now-NULL pointer to newSVpvn(attribute_value, strlen(attribute_value)), causing a NULL dereference inside strlen(). CWE-476 (NULL Pointer Dereference) is the precise root cause class. The OCTET STRING, UTF8STRING, and BIT STRING branches are unaffected because they size the buffer on length+1 or length*4+1, guaranteeing a non-zero allocation. Only the info_as_hash() code path reaches the vulnerable branch; info() passes a NULL hash and routes through BIO_printf instead.

Know when Crypt gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

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

Network vector and no required privileges reflect services accepting untrusted PKCS12 input; impact is availability only with no confidentiality or integrity compromise.

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

3
CVSS changed
Aug 12, 2026 - 18:22 NVD
7.5 (HIGH)
CVE Published
Aug 09, 2026 - 01:21 cve.org
UNKNOWN (no severity yet)
CVE Published
Aug 09, 2026 - 01:21 cve.org
HIGH 7.5

DescriptionCVE.org

Crypt::OpenSSL::PKCS12 versions before 1.98 for Perl allow a NULL pointer dereference in print_attribute via a zero length BMPSTRING attribute.

print_attribute() sizes the destination buffer for a BMPSTRING attribute from its declared byte length with Renew(*attribute, length, char). A zero length attribute makes that a zero size reallocation, which Perl implements as a free returning NULL, so the buffer pointer becomes NULL, the following strncpy copies nothing, and the caller dereferences NULL in the strlen() it passes to newSVpvn(). A zero length BMPSTRING is even length, so the ASN.1 decoder accepts it and the value reaches this code. The UTF8STRING, OCTET STRING and BIT STRING arms size on length + 1 or length * 4 + 1 and are unaffected.

Any caller that passes an untrusted PKCS#12 file to info_as_hash() can crash the process. info() prints attribute values directly without sizing a buffer and is unaffected.

Executive ViewAI

Why It Matters

Crypt::OpenSSL::PKCS12, a critical Perl library for certificate processing, is vulnerable to denial-of-service attacks through maliciously crafted PKCS#12 files, creating risk of service outages in applications parsing certificate data. The vulnerability is rated HIGH severity (CVSS 7.5) but currently shows minimal active exploitation risk (EPSS 0.2%). Organizations should prioritize identifying affected systems and upgrading to the patched version.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche Perl XS module for PKCS12 parsing, limited production footprint
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Crypt

View all
CVE-2026-16235 CRITICAL
9.8 Jul 20

Predictable salt generation in Crypt::Password through version 0.28 for Perl weakens the security of stored password has

CVE-2026-30909 CRITICAL
9.8 Mar 08

Perl Crypt::NaCl::Sodium module through 2.002 has potential integer overflows in cryptographic operations that could wea

CVE-2025-15444 CRITICAL
9.8 Jan 06

Crypt::Sodium::XS for Perl bundles a vulnerable version of libsodium (<= 1.0.20) that has a signature verification flaw.

CVE-2026-9265 CRITICAL
9.1 Jun 20

Heap out-of-bounds read in the Perl module Crypt::OpenSSL::PKCS12 before version 1.96 lets a crafted PKCS#12 file leak a

CVE-2026-58102 CRITICAL
9.1 Jul 13

Heap out-of-bounds read in the Crypt::OpenSSL::X509 Perl module (versions before 2.1.3) lets a crafted X.509 certificate

CVE-2026-2588 CRITICAL
9.1 Feb 23

Integer overflow in Crypt::NaCl::Sodium Perl module through version 2.001 on 32-bit systems. The Sodium.xs binding casts

CVE-2026-14570 HIGH
7.5 Jul 05

Private-key recovery in the Crypt::DSA Perl module (all versions before 1.22) stems from a biased random number generato

CVE-2026-6656 HIGH
7.5 Jul 20

Timing side-channel in the Crypt::Password Perl module (versions through 0.28) allows attackers to incrementally guess a

CVE-2026-58101 HIGH
7.5 Jul 13

Denial of service in the Crypt::OpenSSL::X509 Perl module before 2.1.3 lets a malformed X.509 certificate crash any Perl

CVE-2026-2597 HIGH
7.5 Feb 27

Heap buffer overflow in Crypt::SysRandom::XS before version 0.010 allows denial of service through negative length param

CVE-2026-2474 HIGH
7.5 Feb 16

Heap buffer overflow in Perl's Crypt::URandom module (versions 0.41-0.54) allows denial of service through integer wrapa

CVE-2026-30910 HIGH
7.5 Mar 08

Crypt::Sodium::XS versions through 0.001000 for Perl has potential integer overflows. Combined aead encryption, combined

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