CVE-2025-66199: TLS 1.3 CompressedCertificate excessive memory allocation
An attacker can cause per-connection memory allocations of up to approximately 22 MiB and extra CPU work, potentially leading to service degradation or resource exhaustion (Denial of Service).
In affected configurations, the peer-supplied uncompressed certificate length from a CompressedCertificate message is used to grow a heap buffer prior to decompression. This length is not bounded by the maxcertlist setting, which otherwise constrains certificate message sizes. An attacker can exploit this to cause large per-connection allocations followed by handshake failure. No memory corruption or information disclosure occurs.
This issue only affects builds where TLS 1.3 certificate compression is compiled in (i.e., not OPENSSLNOCOMPALG) and at least one compression algorithm (brotli, zlib, or zstd) is available, and where the compression extension is negotiated. Both clients receiving a server CompressedCertificate and servers in mutual TLS scenarios receiving a client CompressedCertificate are affected. Servers that do not request client certificates are not vulnerable to client-initiated attacks.
Users can mitigate this issue by setting SSLOPNORXCERTIFICATECOMPRESSION to disable receiving compressed certificates.
The FIPS modules in 3.6, 3.5, 3.4 and 3.3 are not affected by this issue, as the TLS implementation is outside the OpenSSL FIPS module boundary.
OpenSSL 3.6, 3.5, 3.4 and 3.3 are vulnerable to this issue.
OpenSSL 3.0, 1.1.1 and 1.0.2 are not affected by this issue.
OpenSSL 3.6 users should upgrade to OpenSSL 3.6.1.
OpenSSL 3.5 users should upgrade to OpenSSL 3.5.5.
OpenSSL 3.4 users should upgrade to OpenSSL 3.4.4.
OpenSSL 3.3 users should upgrade to OpenSSL 3.3.6.
Other sources
Issue summary: A TLS 1.3 connection using certificate compression can be forced to allocate a large buffer before decompression without checking against the configured certificate size limit.
Impact summary: An attacker can cause per-connection memory allocations of up to approximately 22 MiB and extra CPU work, potentially leading to service degradation or resource exhaustion (Denial of Service).
In affected configurations, the peer-supplied uncompressed certificate length from a CompressedCertificate message is used to grow a heap buffer prior to decompression. This length is not bounded by the maxcertlist setting, which otherwise constrains certificate message sizes. An attacker can exploit this to cause large per-connection allocations followed by handshake failure. No memory corruption or information disclosure occurs.
This issue only affects builds where TLS 1.3 certificate compression is compiled in (i.e., not OPENSSLNOCOMPALG) and at least one compression algorithm (brotli, zlib, or zstd) is available, and where the compression extension is negotiated. Both clients receiving a server CompressedCertificate and servers in mutual TLS scenarios receiving a client CompressedCertificate are affected. Servers that do not request client certificates are not vulnerable to client-initiated attacks.
Users can mitigate this issue by setting SSLOPNORXCERTIFICATECOMPRESSION to disable receiving compressed certificates.
The FIPS modules in 3.6, 3.5, 3.4 and 3.3 are not affected by this issue, as the TLS implementation is outside the OpenSSL FIPS module boundary.
OpenSSL 3.6, 3.5, 3.4 and 3.3 are vulnerable to this issue.
OpenSSL 3.0, 1.1.1 and 1.0.2 are not affected by this issue.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
OpenSSLto a version that resolves this vulnerability.Fixed in 3.3.6 - Upgrade
Upgrade
OpenSSLto a version that resolves this vulnerability.Fixed in 3.4.4 - Upgrade
Upgrade
OpenSSLto a version that resolves this vulnerability.Fixed in 3.5.5 - Upgrade
Upgrade
OpenSSLto a version that resolves this vulnerability.Fixed in 3.6.1 - Configuration
Mitigate by setting SSL_OP_NO_RX_CERTIFICATE_COMPRESSION to disable receiving compressed certificates (especially to avoid excess memory allocation from peer-supplied CompressedCertificate length).
OpenSSL TLS 1.3 (certificate compression receiving) SSL_OP_NO_RX_CERTIFICATE_COMPRESSION = enabled
Event History
Frequently Asked Questions
What is the severity of CVE-2025-66199?
CVE-2025-66199 is considered a high severity vulnerability due to the potential for Denial of Service caused by excessive memory allocation.
How do I fix CVE-2025-66199?
To mitigate CVE-2025-66199, you should upgrade OpenSSL to the latest version that addresses this vulnerability.
What software is affected by CVE-2025-66199?
CVE-2025-66199 affects OpenSSL versions from 3.3 to 3.6 and potentially earlier unsupported versions.
What kind of attack can exploit CVE-2025-66199?
CVE-2025-66199 can be exploited through excessive memory allocations resulting in service degradation or resource exhaustion.
What are the potential impacts of CVE-2025-66199?
The potential impacts of CVE-2025-66199 include denial of service and significant CPU resource consumption.