Vulnerabilities 4.1
If you think you have found a security bug in OpenSSL, please report it to us.
Show issues fixed only in OpenSSL 4.1, 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-88823
- from 4.1.0 before 4.1.1
- from 4.0.0 before 4.0.4
- from 3.5.0 before 3.5.10
Issue summary: The AES-GCM-SIV implementation treats a zero-length Additional Authenticated Data (AAD) update as a reset of all the AAD supplied so far, instead of leaving the AAD unchanged. An application that supplies its AAD in several fragments, one of which is empty, therefore produces or verifies messages whose authentication tag does not cover the AAD supplied before the empty fragment.
Impact summary: Data an application intended to authenticate alongside a message is silently left unauthenticated. An attacker can forge the AAD of such a message.
CWE: CWE-325: Missing Cryptographic Step
Description: An application passing AAD in multiple chunks of which some have zero length will have the previous AAD chunks effectively unauthenticated. Also, on context re-initialisation, the AAD was not reset, which meant that any AAD accumulated from the previous context usage were also included in the AAD of the new message.
The fix makes a zero-length AAD update a no-op and clears any accumulated AAD whenever the context is re-initialised with a key or a nonce. A re-initialisation that only changes parameters keeps the AAD.
FIPS impact: no The FIPS modules are not affected, as AES-GCM-SIV is not a FIPS approved algorithm and is implemented only in the default provider, outside the OpenSSL FIPS module boundary.
CVE-2026-107496
- from 4.1.0 before 4.1.1
- from 4.0.0 before 4.0.4
- from 3.5.0 before 3.5.10
- from 3.0.0 before 3.0.24
- from 1.1.1 before 1.1.1zk
- from 1.0.2 before 1.0.2zt
Issue summary: Encrypting a CMS message to an EC certificate whose group order is 1 may cause CMS_encrypt() or CMS_encrypt_ex() to loop indefinitely.
Impact summary: An attacker able to supply the recipient certificate to an application performing CMS encryption can cause that application to loop indefinitely, consuming CPU and resulting in Denial of Service.
CWE: CWE-835: Loop with Unreachable Exit Condition (‘Infinite Loop’)
Description: CMS_encrypt() and CMS_encrypt_ex() encrypt a message to one or more recipient certificates and, for an EC recipient, generate an ephemeral key in the recipient’s group. If the certificate declares a group order of 1, random scalar generation can only produce zero. The key generation routine then retries without limit while waiting for a nonzero private scalar, so the call never returns.
The OpenSSL TLS and QUIC implementations do not use this path. An application is exposed only if it calls CMS_encrypt() or CMS_encrypt_ex() with a recipient certificate whose EC parameters are attacker-controlled. Certificates with normal EC group orders do not trigger the loop.
OpenSSL 4.0 and later reject unknown explicit EC groups in default builds. These versions are affected only when configured with the enable-ec_explicit_curves option.
The result is a hang that consumes a CPU core until the process is interrupted, a Denial of Service. The severity is Low because the attacker must supply the recipient certificate and the application must choose to encrypt to it; ordinary CMS encryption to trusted recipients is unaffected.
The fix makes EC key generation fail when the group has no valid nonzero private scalar, instead of retrying indefinitely.
FIPS impact: no The FIPS modules in 4.1, 4.0, 3.5 and 3.0 are not affected. The FIPS provider does not support arbitrary explicit EC domain parameters, so an order-1 group is rejected during key import before the vulnerable key generation path is reached.
CVE-2026-88822
- from 4.1.0 before 4.1.1
- from 4.0.0 before 4.0.4
- from 3.5.0 before 3.5.10
Issue summary: QUIC, when performing automated peer detection, may allow uninitialized stack data to leak into the received address which is then used as the destination for outgoing packets.
Impact summary: Applications using QUIC’s automated peer detection mechanism may receive an invalid address, leading to connection loss and disclosure of uninitialized stack data to an attacker observing the outgoing network traffic.
CWE: CWE-457 (Use of Uninitialized Variable)
Description: The OpenSSL QUIC stack contains a feature in which, when using an already connected socket, it will auto-detect the peer address during the SSL handshake. This feature uses the getpeername() function, passing a buffer of sufficient length to hold any supported address family, but passes a buffer length that is only sized such that larger addresses, such as IPv6, cannot be retrieved. The getpeername() function however, still returns the full address length, which is accepted as the valid input buffer length, leading to the address buffer containing uninitialized stack data instead of the actual peer address. The invalid peer address is then used as destination for the outgoing packets which leads to a connectivity breakage and a leakage of the uninitialized stack data to passive network observers.
FIPS impact: no The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this CVE as the affected protocol is not implemented in the FIPS module.
CVE-2026-95691
- from 4.1.0 before 4.1.1
- from 4.0.0 before 4.0.4
- from 3.5.0 before 3.5.10
Issue summary: A retransmitted QUIC CRYPTO frame can release packet storage while the TLS record layer retains a direct pointer into that storage causing use after free.
Impact summary: A malicious QUIC server can cause a heap-use-after-free read in the OpenSSL QUIC client. The server can also identify one allocator-adjacent byte through the client’s protected Handshake response.
CWE: CWE-416: Use After Free
Description: During CRYPTO stream processing, a pointer into the first frame’s memory on the stream is lent to the TLS handshake processing. The memory must remain stable until it is processed and released. However the processing of retransmitted CRYPTO frames could release the memory if the retransmitted frame fully overlapped the existing frame. This then causes use-after-free read when the TLS handshake processing continues.
The use-after-free read can lead to a Denial-of-Service of the client application or a minor leak of information about the heap memory contents that might be overwritten with other data, subsequently allocated by the application, to the peer.
FIPS impact: no The FIPS module is not affected as the QUIC implementation is outside of the OpenSSL FIPS module boundary.
CVE-2026-95692
- from 4.1.0 before 4.1.1
- from 4.0.0 before 4.0.4
- from 3.5.0 before 3.5.10
Issue summary: Setting an AES-GCM-SIV IV shorter than the expected nonce length via EVP_CipherInit_ex() may trigger a heap out-of-bounds read. Supplying a longer IV is silently truncated instead of rejected.
Impact summary: An application passing a caller-supplied IV of the wrong length may crash or read beyond its buffer. Because trailing IV bytes are ignored, an attacker who knows one message and tag may forge messages under a different IV.
CWE: CWE-125: Out-of-bounds Read
Description: AES-GCM-SIV copies the caller-supplied IV or nonce into its internal state using a copy whose length is taken from the expected nonce size rather than from the length the caller actually provided. When the caller passes a shorter IV, the copy reads past the end of the caller’s buffer; AddressSanitizer confirms a heap out-of-bounds read reached through EVP_CipherInit_ex() into ossl_aes_gcm_siv_init(). When the caller passes a longer IV, the implementation silently discards the trailing bytes instead of rejecting the length.
The truncation breaks the binding between the IV and the computed authentication tag. An attacker who has observed a message and its tag under one IV can produce a message and tag that verify under a different IV whose first bytes match, since the surplus bytes never influence the computation. The message itself is unchanged, so this is a failure of IV commitment rather than a classic existential forgery.
Only applications that call EVP_CipherInit_ex() (or the equivalent provider cipher initialization) with an IV length other than the standard 12 bytes for AES-GCM-SIV are affected. The severity is limited because the out-of-bounds read is small and attacker-controlled only in length, and the forgery requires an unusual IV length choice by the application.
FIPS impact: no The FIPS modules are not affected by this issue, as AES-GCM-SIV is not an approved algorithm.
- Changelog
- CVEs and the FIPS provider
- OpenSSL 1.1.1 Series Release Notes
- OpenSSL 3.0 Series Release Notes
- OpenSSL 3.1 Series Release Notes
- OpenSSL 3.2 Series Release Notes
- OpenSSL 3.3 Series Release Notes
- OpenSSL 3.4 Series Release Notes
- OpenSSL 3.5 Series Release Notes
- OpenSSL 3.6 Series Release Notes
- Release and Advisory Timeline
- Security advisory list (json)
- Security advisory list (txt)
- Vulnerabilities
- Vulnerabilities 0.9.6
- Vulnerabilities 0.9.7
- Vulnerabilities 0.9.8
- Vulnerabilities 1.0.0
- Vulnerabilities 1.0.1
- Vulnerabilities 1.0.2
- Vulnerabilities 1.1.0
- Vulnerabilities 1.1.1
- Vulnerabilities 3.0
- Vulnerabilities 3.1
- Vulnerabilities 3.2
- Vulnerabilities 3.3
- Vulnerabilities 3.4
- Vulnerabilities 3.5
- Vulnerabilities 3.6
- Vulnerabilities 4.0
- Vulnerabilities 4.1
- Top of News