Summary
CVE-2026-45447 describes a heap use-after-free vulnerability in OpenSSL’s PKCS7_verify() function, triggered by processing a specially crafted PKCS#7 or S/MIME signed message containing an empty ASN.1 SET in the SignedData digestAlgorithms field. The flaw affects OpenSSL across seven major release branches and carries a CVSS v3.1 score of 8.1 (High). Depending on allocator behavior and how the calling application uses the freed BIO, the vulnerability may result in process crashes, heap corruption, or remote code execution.
Technical details
-
Root cause: When
PKCS7_verify()encounters aSignedData digestAlgorithmsfield represented as an empty ASN.1 SET, it incorrectly frees a BIO object that was passed in by the caller and is still owned by the calling application. Once freed, any subsequent access to that BIO by the application constitutes a use-after-free condition (CWE-416). -
Trigger conditions: The attacker must deliver a malformed PKCS#7 or S/MIME signed message to an application that calls the legacy OpenSSL
PKCS7_verify()API. No authentication or user interaction is required — the message itself is the attack payload. -
Attack vector: Network — AV:N/AC:L/PR:N/UI:N. An unauthenticated remote attacker can deliver the crafted message over any network channel that carries PKCS#7 or S/MIME content (e.g., email, HTTPS endpoints that accept signed documents, PKI-enabled APIs).
-
Impact: In the common case, exploitation causes a crash when the application calls
BIO_free()on the already-freed object. Depending on heap allocator behavior and application-specific BIO usage patterns, the condition may escalate to heap corruption or, in some application contexts, remote code execution. Full confidentiality, integrity, and availability impact is reflected in the CVSS score. -
Scope limitation: Only applications using the legacy OpenSSL PKCS#7 APIs are affected. Applications that process S/MIME or CMS signed data exclusively through the CMS APIs are not affected. The FIPS modules in OpenSSL 3.0, 3.4, 3.5, 3.6, and 4.0 are not affected, as the vulnerable code resides outside the FIPS module boundary.
Affected software
-
OpenSSL 4.0.0 through 4.0.0 (fixed in 4.0.1)
-
OpenSSL 3.6.0 through 3.6.2 (fixed in 3.6.3)
-
OpenSSL 3.5.0 through 3.5.6 (fixed in 3.5.7)
-
OpenSSL 3.4.0 through 3.4.5 (fixed in 3.4.6)
-
OpenSSL 3.0.0 through 3.0.20 (fixed in 3.0.21)
-
OpenSSL 1.1.1 through 1.1.1zg (fixed in 1.1.1zh — premium support customers only)
-
OpenSSL 1.0.2 through 1.0.2zp (fixed in 1.0.2zq — premium support customers only)
Severity
CVSS v3.1 Base Score: 8.1 (High) Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Mitigation and recommended actions
-
Immediate — upgrade to a patched release:
-
OpenSSL 4.0 → upgrade to 4.0.1
-
OpenSSL 3.6 → upgrade to 3.6.3
-
OpenSSL 3.5 → upgrade to 3.5.7
-
OpenSSL 3.4 → upgrade to 3.4.6
-
OpenSSL 3.0 → upgrade to 3.0.21
-
OpenSSL 1.1.1 → upgrade to 1.1.1zh (requires OpenSSL premium support)
-
OpenSSL 1.0.2 → upgrade to 1.0.2zq (requires OpenSSL premium support)
-
-
Code-level mitigation: Applications that can migrate from the legacy
PKCS7_verify()API to the OpenSSL CMS APIs are not affected by this vulnerability and should consider migrating as a long-term remediation. -
Network-level mitigation: Where immediate patching is not feasible, restrict network access to services that accept and process PKCS#7 or S/MIME signed messages, limiting exposure to trusted networks or authenticated channels only.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

