Vulnerabilities 4.0

If you think you have found a security bug in OpenSSL, please report it to us.

Show issues fixed only in OpenSSL 4.0, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0, 1.1.1, 1.1.0, 1.0.2, 1.0.1, 1.0.0, 0.9.8, 0.9.7, 0.9.6, or all versions.

CVE-2026-34180

Severity
Low
Published at
9 June 2026
Title
Heap Buffer Over-read in ASN.1 Content Parsing
Found by
Frank Buss
Fix developed by
Viktor Dukhovni
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
  • from 3.0.0 before 3.0.21
  • from 1.1.1 before 1.1.1zh
  • from 1.0.2 before 1.0.2zq
References

Issue summary: Parsing a crafted DER-encoded ASN.1 structure with a primitive element whose content exceeds 2 gigabytes in length may cause a heap buffer over-read on 64-bit Unix and Unix-like platforms.

Impact summary: The heap buffer over-read may crash the application (Denial of Service) or to load into the decoded ASN.1 object contents of memory beyond the end of the input buffer. More typically such ASN.1 elements would instead be truncated.

An integer truncation in OpenSSL’s ASN.1 decoder causes the content length of an ASN.1 primitive element to be mishandled when it exceeds 2 gigabytes. In the worst case the truncated length is treated as a request to scan the binary content for a terminating zero byte, possibly causing OpenSSL to read either less than or beyond the end of the allocated buffer.

Applications that pass attacker-supplied data to d2i_X509(), d2i_PKCS7(), or any other d2i_* decoding function are affected. OpenSSL’s own command-line tools are not vulnerable, as data read through the BIO layer is checked before it reaches the affected code. The issue only affects 64-bit Unix and Unix-like platforms; 32-bit platforms and 64-bit Windows are not affected.

The FIPS modules in 4.0, 3.6, 3.5, 3.4 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-34181

Severity
Low
Published at
9 June 2026
Title
PKCS#12 Files with PBMAC1 Are Accepted with Short HMAC Keys
Found by
Pavol Žáčik (Red Hat) and Alex Gaynor (Anthropic)
Fix developed by
Alicja Kario (Red Hat)
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
References

Issue Summary: The PKCS#12 file processing fails to perform sufficient input validation for files that use Password-Based Message Authentication Code 1 (PBMAC1) integrity mechanism allowing a certificate and private key forgery.

Impact Summary: An attacker impersonating a user can cause a service reading PKCS#12 files to accept forged certificates and private keys with a 1 in 256 probability.

If a service accepting PKCS#12 files is using passwords for authenticating the received files, the attacker can create unencrypted PKCS#12 files that use PBMAC1 authentication that specifies an HMAC key of only one byte, allowing them to craft a file that will be accepted with a 1 in 256 probability. That would then cause the service to accept a certificate and private key controlled by the attacker.

The FIPS modules are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-34182

Severity
Moderate
Published at
9 June 2026
Title
CMS AuthEnvelopedData Processing May Accept Forged Messages
Found by
Asim Viladi Oglu Manizada, Alex Gaynor (Anthropic), Ying Dong and Haiyang Huang
Fix developed by
Neil Horman
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
  • from 3.0.0 before 3.0.21
References

Issue Summary: Cryptographic Message Services (CMS) processing fails to perform sufficient input validation on the cipher and tag length fields of AuthEnvelopedData containers, leading to various potential compromises.

Impact Summary: Attackers making use of these vulnerabilities may achieve key-equivalent functionality for a given CMS recipient and/or bypass integrity validation for a given message.

In one use case, an attacker may send a CMS message containing AuthEnvelopedData with the cipher specified as a non-AEAD cipher. OpenSSL erroneously allows this selection, and attempts to decrypt and validate the message.

An on-path attacker who captures one legitimate AES-GCM AuthEnvelopedData addressed to the victim can re-emit it with the recipientInfos set left byte-for-byte intact, so the victim’s private key still unwraps the genuine CEK (the content-encryption key), but with the inner OID rewritten to AES-256-OFB (Output Feedback Mode, an unauthenticated keystream mode) and with an attacker-chosen IV and ciphertext. The victim initializes AES-256-OFB under the real CEK, never consults the MAC field, and CMS_decrypt() returns success.

If the application under attack responds to the attacker with any indicator showing success or failure of the decryption effort, it is possible for the attacker to use this as an oracle to obtain key equivalent functionality for the CEK used for the chosen recipient of the message.

In another use case, an attacker can reduce the tag length of the chosen AEAD cipher for a given AuthEnvelopedData container to be a single byte long, allowing an attacker to brute force CMS decryption, producing an integrity bypass for applications that trust CMS_decrypt() to reject modified content.

The FIPS modules are not affected by this issue.

CVE-2026-34183

Severity
Moderate
Published at
9 June 2026
Title
Unbounded Memory Growth in the QUIC PATH_CHALLENGE Handler
Found by
Abhinav Agarwal
Fix developed by
Alexandr Nedvedicky
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
References

Issue summary: Remote peer may exhaust heap memory of the QUIC server or client by flooding it with packets containing PATH_CHALLENGE frames.

Impact summary: A malicious remote peer can cause an unbounded memory allocation which can lead to an abnormal termination of the application acting as a QUIC client or server and a Denial of Service.

A remote peer may exhaust heap memory by flooding the local QUIC stack with PATH_CHALLENGE frames. The local QUIC stack allocates a PATH_RESPONSE frame for every PATH_CHALLENGE it receives. The allocated PATH_RESPONSE frame gets freed only when the remote peer acknowledges reception of the PATH_RESPONSE frame which will not be done by a malicious peer.

The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this issue. The QUIC stack is outside of OpenSSL FIPS module boundary.

CVE-2026-35188

Severity
Moderate
Published at
9 June 2026
Title
Double-free When Checking OCSP Stapled Response
Found by
Wang Kenaz (University of Illinois), Guido Vranken (Aisle Research) and Aaron Grattafiori (Nvidia)
Fix developed by
Daniel Kubec
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
References

Issue summary: A malicious server can exploit TLS OCSP stapling by delivering a crafted response through the status_request extension, triggering a double-free in the client’s certificate verification path.

Impact summary: Successful exploitation allows an attacker to corrupt heap memory via a double-free, potentially leading to a Denial of Service or possibly an attacker controlled code execution or other undefined behavior.

If OCSP stapling is enabled and the TLS client connects to a malicious server, a crafted OCSP stapled response can trigger a double free in the TLS client when the stapled response is checked.

The OCSP stapling is not enabled by default. Reliable code execution through a double-free is technically complex and highly environment-dependent but the Denial of Service impact is straightforward to achieve, warranting Moderate severity.

No FIPS modules are affected by this issue as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-42764

Severity
Moderate
Published at
9 June 2026
Title
NULL Pointer Dereference in QUIC Server Initial Packet Handling
Found by
Sunwoo Lee (KENTECH), Hyuk Lim (KENTECH) and Seunghyun Yoon (KENTECH)
Fix developed by
Sunwoo Lee (KENTECH), Hyuk Lim (KENTECH) and Seunghyun Yoon (KENTECH)
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
References

Issue summary: Receiving a QUIC initial packet with an invalid token may trigger a NULL pointer dereference in the OpenSSL QUIC server with address validation disabled.

Impact summary: NULL pointer dereference typically causes abnormal termination of the affected QUIC server process and a Denial of Service.

If the address validation is disabled in the OpenSSL QUIC server implementation, an attacker can crash the server by sending an initial packet with an invalid or expired token.

By default, the client address validation is enabled in the OpenSSL QUIC server implementation, which makes the default configuration not vulnerable to this issue. However if the SSL_LISTENER_FLAG_NO_VALIDATE is used with the SSL_new_listener() call, the address validation is disabled making the vulnerable code reachable.

The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-42765

Severity
Low
Published at
9 June 2026
Title
NULL Dereference in Certificate Verification with OCSP Checking
Found by
Joshua Rogers (Aisle Research)
Fix developed by
Joshua Rogers (Aisle Research) and Daniel Kubec
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
References

Issue summary: When a partial-chain certificate verification is enabled together with OCSP response checking for the whole chain, a NULL dereference will happen if the verified chain does not have a self-signed trusted anchor, crashing the process.

Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application.

When performing OCSP response checking for certificates in the verification chain, the code always tries to access the next certificate as the issuer. There is a check for a self-signed certificate. However with the partial chain verification enabled when the chain does not have a self-signed trusted anchor, the issuer will be NULL for the last certificate in the chain. A NULL pointer dereference then happens.

This issue affects only applications which enable both OCSP verification of the certificate chain (X509_V_FLAG_OCSP_RESP_CHECK_ALL) and partial chain verification (X509_V_FLAG_PARTIAL_CHAIN) in the certificate verification. Both flags are disabled by default. For that reason, we have assigned Low severity to the issue.

No FIPS modules are affected by this issue as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-42766

Severity
Low
Published at
9 June 2026
Title
Possible NULL Dereference in Password-Based CMS Decryption
Found by
Mayank Jangid, Kushal Khemka, Hari Priandana, Bhabani Sankar Das and Qifan Zhang (Palo Alto Networks)
Fix developed by
Igor Ustinov
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
  • from 3.0.0 before 3.0.21
  • from 1.1.1 before 1.1.1zh
  • from 1.0.2 before 1.0.2zq
References

Issue summary: A specially crafted password-encrypted CMS message can trigger a NULL pointer dereference during CMS decryption.

Impact summary: This NULL pointer dereference leads to an application crash and a Denial of Service.

The CMS PasswordRecipientInfo.keyDerivationAlgorithm field is defined as OPTIONAL in the ASN.1 specification and may therefore be absent in specially crafted inputs. During the password-based CMS decryption the OpenSSL CMS implementation dereferences this field without first checking whether it was present.

An attacker who supplies such a CMS message to an application performing password-based CMS decryption can trigger an application crash, leading to a Denial of Service.

Applications that process password-encrypted CMS messages may be affected.

The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-42767

Severity
Low
Published at
9 June 2026
Title
NULL Pointer Dereference in CRMF EncryptedValue Decryption
Found by
Zhanpeng Liu (Tencent Xuanwu Lab), Guannan Wang (Tencent Xuanwu Lab) and Guancheng Li (Tencent Xuanwu Lab)
Fix developed by
Igor Ustinov and Tomáš Mráz
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
  • from 3.0.0 before 3.0.21
References

Issue summary: An attacker-controlled CMP (Certificate Management Protocol) server could trigger a NULL pointer dereference in a CMP client application.

Impact summary: A NULL pointer dereference causes a crash of the application and a Denial of Service.

An attacker controlling a CMP server (or acting as a man-in-the-middle) could craft a CMP response containing a CRMF (Certificate Request Message Format) CertRepMessage with an EncryptedValue structure where the symmAlg field has an algorithm OID but no parameters field. When the OpenSSL CMP client processes this response, the NULL dereference occurs, causing a crash of the CMP client.

Applications that process untrusted CMP/CRMF messages may be affected.

The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-42768

Severity
Low
Published at
9 June 2026
Title
Multi-RecipientInfo Bleichenbacher Oracle in CMS_decrypt() and PKCS7_decrypt()
Found by
Alex Gaynor (Anthropic)
Fix developed by
Dmitry Belyavskiy (Red Hat) and Alicja Kario (Red Hat)
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
References

Issue summary: The CMS_decrypt and PKCS7_decrypt functions are vulnerable to Bleichenbacher-style attack when an attacker is able to provide the CMS or S/MIME messages and observe the error code and/or decryption output.

Impact summary: The Bleichenbacher-style attack allows an attacker to use the victim’s vulnerable application as a way to decrypt or sign messages with the victim’s private RSA key.

The attack is possible in 2 variants.

  1. The decryption API (CMS_decrypt(), PKCS7_decrypt()) is used without providing the recipient certificate. In this case OpenSSL iterates over every KeyTransRecipientInfo (KTRI) without stopping at the first success.

An attacker who authors a message with two KTRI entries — the first one wrapping a real CEK under the victim’s public key, the second with an arbitrary probe ciphertext — obtains opportunity to iterate the 2nd KTRI to get a valid PKCS#1 v1.5 padding if the error code of the application is available.

That is a Bleichenbacher oracle (Bleichenbacher, CRYPTO ‘98): an adaptive-chosen-ciphertext side channel from which the attacker decrypts any RSA ciphertext to the victim’s key or forges any PKCS#1 v1.5 signature under it.

  1. When the decryption API (CMS_decrypt(), PKCS7_decrypt()) is provided with the recipient certificate, and the recipient is not found, a random key is substituted.

An attacker who authors a message and is able to compare both error code and the result of the decryption, can mount a Bleichenbacher oracle.

We are not aware of any applications that provide a remote attacker an opportunity to mount an attack described in these scenarios. We consider the existence of such application very unlikely, and for this reason this CVE has been evaluated as Low severity.

To avoid these attacks, when RSA PKCS#1 v1.5 Key Transport is in use, the invoked EVP_PKEY_decrypt() will use the implicit rejection mechanism described in draft-irtf-cfrg-rsa-guidance. In previous OpenSSL releases the implicit rejection was explicitly disabled.

The implicit rejection mechanism always returns a plaintext value, the symmetric key. This result is deterministic for the ciphertext and the private key. The length of the decryption result can happen to match the length of the key of the symmetric cipher that was used for the content encryption. When a certificate is not provided, the last RecipientInfo producing a key that looks valid will be used. It may cause getting garbage content on decryption. As a proper way to deal with this a recipient certificate has to be provided to identify the particular RecipientInfo for decryption.

The FIPS modules in 4.0, 3.6, 3.5, and 3.4 are not affected by this issue, as CMS and S/MIME processing happens outside the OpenSSL FIPS module boundary.

CVE-2026-42769

Severity
Low
Published at
9 June 2026
Title
Trust-Anchor Substitution via cert/issuer Typo in CMP rootCaKeyUpdate
Found by
Alex Gaynor (Anthropic)
Fix developed by
Alex Gaynor (Anthropic) and Bob Beck
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
References

Issue Summary: An error in the callback used to verify the certificate provided in a Root CA key update Certificate Management Protocol (CMP) message response rendered the certificate validation ineffectual, which could lead to escalation of credentials from the Registration Authority (RA) level to the root Certification Authority (root CA) level.

Impact Summary: The Registration Autority could replace the root CA certificate for the CMP clients with an arbitrary root CA certificate.

One of the parts of the Certificate Management Protocol (CMP), specified in RFC 9810, is Root Certification Authority (root CA) key Rollover, which is sent by the server in a message with type ‘id-it-rootCaKeyUpdate’. As part of these messages, ’newWithOld’ certificate, the new root CA certificate signed with the old root CA key, is provided, and verifying its signature is crucial for transferring the trust from the old CA key to the new one.

The ‘id-it-rootCaKeyUpdate’ messages are expected to be processed with OSSL_CMP_get1_rootCaKeyUpdate(), that is expected to verify the ’newWithOld’ certificate. A typo in the certificate chain building code led to adding an incorrect certificate (’newWithOld’ instead of ‘oldRoot’) to the certificate chain, rendering the certificate verification process ineffectual (only the issuer name and the algorithm OIDs were verified by other parts of the verification code).

An attacker who already has credentials that satisfy the CMP message protection checks can generate a new key pair and use a crafted self-signed certificate in its ‘id-it-rootCaKeyUpdate’ CMP messages which affected CMP clients would accept as a new trust anchor.

Significant preconditions for the attack (having valid RA-level credentials) are the reason the issue was assigned Low severity.

The FIPS modules are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-42770

Severity
Low
Published at
9 June 2026
Title
FFC-DH Peer Validation Uses Attacker-Supplied q
Found by
Alex Gaynor (Anthropic)
Fix developed by
Alex Gaynor (Anthropic), Viktor Dukhovni and Norbert Pócs
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
  • from 3.0.0 before 3.0.21
References

Issue summary: When EVP_PKEY_derive_set_peer() is called with a DHX (X9.42) peer key, the peer key is not properly checked for the subgroup membership.

Impact summary: A malicious peer which presents an X9.42 key carrying the victim’s p and g parameters, a forged q = r (a small prime factor of the cofactor (p−1)/q_local), and a public value Y of order r can recover the victim’s private key after a small number of key exchange attempts.

When EVP_PKEY_derive_set_peer() is called with a DHX (X9.42) peer key, the subgroup membership check Y^q ≡ 1 (mod p) is performed using the peer’s own q parameter, not the local key’s q. The peer’s domain parameters are then matched against the domain parameters of the private key, but the value of q is not compared.

A malicious peer who presents an X9.42 key carrying the victim’s p, g, a forged q = r (a small prime factor of the cofactor), and a public value Y of order r passes all checks. The shared secret then takes only r distinct values, leaking priv mod r. Repeating for each small-prime factor of the cofactor and combining via CRT recovers the full private key (Lim–Lee / small-subgroup-confinement attack).

The realistic attack surface is narrow: principally CMP deployments with long-lived RA/CA DHX keys and bespoke enterprise or government applications using X9.42 DHX static keys with interactive protocols and therefore this issue was assigned Low severity.

The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are affected by this issue.

CVE-2026-42771

Severity
Low
Published at
9 June 2026
Title
Possible Out of Bounds Read in X509_VERIFY_PARAM_set1_email()
Found by
TrendAI Zero Day Initiative
Fix developed by
Bob Beck
Affected
  • from 4.0.0 before 4.0.1
References

Issue summary: When the X509_VERIFY_PARAM_set1_email is called by an application to validate a crafted e-mail address, such as during S/MIME message validation, an out of bounds read can happen.

Impact summary: This out of bounds read will not directly exfiltrate the data read to the attacker so the most likely result is a crash and a Denial of Service.

An internal helper function called from X509_VERIFY_PARAM_[set|add]_email() used a wrong length when validating the local part of an email address. This could cause the 64 octet limit on the local part of an email address to be not enforced, or cause an out of bound read and potentially a crash.

The bug is reachable via S-MIME validation with a crafted From: address supplied in an email message that can potentially cause a crash.

No FIPS modules are affected by this issue as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-45445

Severity
Moderate
Published at
9 June 2026
Title
AES-OCB IV Ignored on EVP_Cipher() Path
Found by
Alex Gaynor (Anthropic)
Fix developed by
Viktor Dukhovni
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
  • from 3.0.0 before 3.0.21
References

Issue summary: When an application drives an AES-OCB context through the public EVP_Cipher() one-shot interface, the application-supplied initialisation vector (IV) is silently discarded.

Impact summary: Every message encrypted under the same key uses the same effective nonce regardless of the IV supplied by the caller, resulting in (key, nonce) reuse and loss of confidentiality. If the same code path is used to compute the authentication tag, the tag depends only on the (key, IV) pair and not on the plaintext or ciphertext, allowing universal forgery of arbitrary ciphertext from a single captured message.

OpenSSL provides two ways to drive a cipher: the documented streaming interface (EVP_CipherUpdate / EVP_CipherFinal_ex) and a lower-level one-shot, EVP_Cipher(), whose documentation explicitly recommends against use by applications in favour of EVP_CipherUpdate() and EVP_CipherFinal_ex(). The OCB provider’s streaming handler flushes the application-supplied IV into the OCB context before processing data; the one-shot handler did not. Every call to EVP_Cipher() on an AES-OCB context therefore ran with the all-zero key-derived offset state left by cipher initialisation, regardless of the caller’s IV.

If EVP_EncryptFinal_ex() is subsequently used to obtain the authentication tag, the deferred IV setup runs at that point and clears the running checksum that should have been accumulated over the plaintext. The resulting tag is a function of (key, IV) only and verifies against any ciphertext produced under the same (key, IV) pair.

The OpenSSL SSL/TLS implementation is not affected: AES-OCB is not a TLS cipher suite, and libssl does not call EVP_Cipher() in any case. Applications that drive AES-OCB through the documented streaming AEAD API (EVP_CipherUpdate / EVP_CipherFinal_ex) are not affected. Only applications that combine the AES-OCB cipher with the EVP_Cipher() one-shot API are vulnerable.

The FIPS modules in 4.0, 3.6, 3.5, 3.4 and 3.0 are not affected by this issue, as AES-OCB is outside the OpenSSL FIPS module boundary.

CVE-2026-45446

Severity
Low
Published at
9 June 2026
Title
Incorrect Tag Processing for Empty Messages in AES-GCM-SIV and AES-SIV modes
Found by
Alex Gaynor (Anthropic)
Fix developed by
Dmitry Belyavskiy (Red Hat)
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
  • from 3.0.0 before 3.0.21
References

Issue summary: The implementations of AES-SIV (RFC 5297) and AES-GCM-SIV (RFC 8452) mishandle the authentication of AAD (Additional Authenticated Data) with an empty ciphertext allowing a forgery of such messages.

Impact summary: An attacker can forge empty messages with arbitrary AAD to the victim’s application using these ciphers.

AES-SIV (RFC 5297) and AES-GCM-SIV (RFC 8452) are nonce-misuse-resistant AEAD modes: they accept a key, nonce, optional AAD (bytes that are authenticated but not encrypted), and plaintext, and produces ciphertext plus a 16-byte tag. On decrypt, EVP_DecryptFinal_ex() is documented to return success only if the tag is verified succesfully.

In OpenSSL’s provider implementation of these ciphers, the expected tag is computed only when decryption function is invoked with non-empty data. If the caller supplies AAD and then calls EVP_DecryptFinal_ex() without invocation of the ciphertext update, which can happen when the received ciphertext length is zero, the tag is never recalculated and still holds its all-zeros value.

When AES-GCM-SIV is used, an attacker who sends arbitrary AAD, empty ciphertext, and all-zeros tag passes authentication under any key they do not know, single-shot. When AES-SIV is used, for mounting the attack it’s necessary for the application to reuse the decryption context without resetting the key.

AES-SIV is implemented since OpenSSL 3.0. AES-GCM-SIV is implemented since OpenSSL 3.2.

No protocols implemented in OpenSSL itself (TLS/CMS/PKCS7/HPKE/QUIC) support either AES-GCM-SIV or AES-SIV. To mount an attack, the applications must implement their own protocol and use the EVP interface. Also they must skip the ciphertext update when a message with an empty ciphertext arrives.

The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this issue, as these algorithms are not FIPS approved and the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-45447

Severity
High
Published at
9 June 2026
Title
Heap Use-After-Free in the PKCS7_verify() Function
Found by
Thai Duong (Calif.io in collaboration with Claude and Anthropic Research)
Fix developed by
Igor Ustinov
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
  • from 3.0.0 before 3.0.21
  • from 1.1.1 before 1.1.1zh
  • from 1.0.2 before 1.0.2zq
References

Issue summary: A specially crafted PKCS#7 or S/MIME signed message could trigger a use-after-free during PKCS#7 signature verification.

Impact summary: A use-after-free may result in process crashes, heap corruption, or potentially remote code execution.

When processing a PKCS#7 or S/MIME signed message, if the SignedData digestAlgorithms field is present as an empty ASN.1 SET, OpenSSL may incorrectly free a caller-owned BIO during PKCS7_verify(). A subsequent use of the BIO by the calling application results in a use-after-free condition.

In the common case this occurs when the application later calls BIO_free() on the BIO originally passed to PKCS7_verify(). Depending on allocator behavior and application-specific BIO usage patterns, this may result in a crash or other memory corruption. In some application contexts this may potentially be exploitable for remote code execution.

Applications that process PKCS#7 or S/MIME signed messages using OpenSSL PKCS#7 APIs may be affected. Applications using the CMS APIs for this processing are not affected.

The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-7383

Severity
Low
Published at
9 June 2026
Title
Possible Heap Buffer Overflow in ASN.1 Multibyte String Conversion
Found by
Zehua Qiao and Jinwen He
Fix developed by
Viktor Dukhovni
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
  • from 3.0.0 before 3.0.21
  • from 1.1.1 before 1.1.1zh
  • from 1.0.2 before 1.0.2zq
References

Issue summary: A signed integer overflow when sizing the destination buffer for Unicode output in ASN1_mbstring_ncopy() can lead to a heap buffer overflow.

Impact summary: A heap buffer overflow may lead to a crash or possibly attacker controlled code execution or other undefined behaviour.

In ASN1_mbstring_copy() and ASN1_mbstring_ncopy() the destination size for Unicode output is computed in a signed int: by left shift of the input character count for BMPSTRING (UTF-16) and UNIVERSALSTRING (UTF-32), and by summing per-character byte counts for UTF8STRING. The calculation overflows when the input reaches around 2^30 characters. In the worst case (UNIVERSALSTRING at 2^30 characters) the size wraps to zero, OPENSSL_malloc(1) is called, and the subsequent character copy writes several gigabytes past the one-byte allocation.

X.509 certificate processing routes through ASN1_STRING_set_by_NID(), whose DIRSTRING_TYPE mask excludes UNIVERSALSTRING and whose per-NID size limits cap the input length; no network protocol or certificate-handling path in OpenSSL exercises the overflow. Triggering the bug requires an application that calls ASN1_mbstring_copy() or ASN1_mbstring_ncopy() directly, or registers a custom string type via ASN1_STRING_TABLE_add(), with attacker-controlled input on the order of half a gigabyte or more. For these reasons this issue was assigned Low severity.

The FIPS modules in 4.0, 3.6, 3.5, 3.4 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.

CVE-2026-9076

Severity
Low
Published at
9 June 2026
Title
Out-of-Bounds Read in CMS Password-Based Decryption
Found by
Bhabani Sankar Das and Haruki Oyama (Waseda University)
Fix developed by
Nikola Pajkovsky
Affected
  • from 4.0.0 before 4.0.1
  • from 3.6.0 before 3.6.3
  • from 3.5.0 before 3.5.7
  • from 3.4.0 before 3.4.6
  • from 3.0.0 before 3.0.21
  • from 1.1.1 before 1.1.1zh
  • from 1.0.2 before 1.0.2zq
References

Issue summary: When CMS password-based decryption (RFC 3211 / PWRI key unwrap) processes attacker-supplied CMS data, an attacker-chosen stream-mode KEK cipher can trigger a heap out-of-bounds read in kek_unwrap_key().

Impact summary: A heap buffer over-read may trigger a crash which leads to Denial of Service for an application if the input buffer ends at a memory page boundary and the following page is unmapped. There is no information disclosure as the over-read bytes are not revealed to the attacker.

The key unwrapping function performs a check-byte test as specified in the RFC that reads 7 bytes from a heap allocation that is based on the wrapped key length from the message. There is a minimum length check based on the block length of the wrapping cipher. However the cipher is selected from an OID carried in the attacker’s PWRI keyEncryptionAlgorithm with no requirement that the cipher be a block cipher. When an attacker selects a stream-mode cipher the guard will be ineffective and the allocated buffer containing the unwrapped key can be too small to fit the check-bytes specified in the RFC and a buffer over-read can happen.

Applications calling CMS_decrypt() or CMS_decrypt_set1_password() (equivalently openssl cms -decrypt -pwri_password …) on untrusted CMS data are vulnerable to this issue. No password knowledge is required: the over-read happens during the unwrap attempt before any authentication succeeds.

The over-read is limited to a few bytes and is not written to output, so there is no information disclosure. Triggering a crash requires the allocation to border unmapped memory, which is unlikely with the normal allocator.

The FIPS modules are not affected by this issue.