Latest in branch 3.3
3.3.7
Released 07 Apr 2026
(1 month ago)
SoftwareOpenSSL
Branch3.3
Status
End of life
Initial release3.3.0
09 Apr 2024
(2 years ago)
Latest release3.3.7
07 Apr 2026
(1 month ago)
End of
OSS support
09 Apr 2026
(Ended 1 month ago)
Premium supportUnavailable
Release noteshttps://github.com/openssl/openssl/releases/tag/openssl-3.3.7
Source codehttps://github.com/openssl/openssl/tree/openssl-3.3.7
Downloadhttps://github.com/openssl/openssl/releases/tag/openssl-3.3.7
OpenSSL 3.3 ReleasesView full list

What Is New in OpenSSL 3.3

Category Highlights
New Features QUIC tracing (qlog), idle-timeout and stream-limit APIs, SSL_write_ex2 for FIN, EVP_DigestSqueeze, BLAKE2s variable-output, CRT derivation in EVP_PKEY_fromdata, Y2038-safe SSL_SESSION time APIs, extended CMPv3 support, new x509 -set_issuer/-set_subject options.
Improvements Architecture-specific optimisations: AES-GCM unroll8 for Azure Cobalt, AES-CTR for ARM Neoverse V1/V2, SHA-3 on Apple Silicon M3, RISC-V vector crypto extensions, md5 assembly on loongarch64, larger TLS 1.2 exporter context, faster hex conversion.
Bug Fixes Fixes for CVE-2026-31790 (RSA-KEM), CVE-2026-28387/88/89/90 (DANE/CMS), CVE-2026-31789 (hex overflow), CVE-2025-15467/68 (CMS AuthEnvelopedData, SSL_CIPHER_find), CVE-2025-66199 (TLS 1.3 CompressedCertificate), CVE-2025-68160 (BIO_f_linebuffer), multiple PKCS#12/PKCS7/TS bugs, and many others.
Breaking Changes Provider activation flags now require explicit true/false (or 1/0); default HMAC hash changed from md5 to sha256; OPENSSL_sk_push returns 0 on NULL stack; new HTTP response header limit (256 lines); BIO_get_new_index capped at 127; SSL_SESSION time APIs switched to time_t for Y2038 safety.

What new QUIC capabilities does OpenSSL 3.3 provide?

OpenSSL 3.3 adds a full set of QUIC tracing and stream-management APIs that let applications monitor connections with qlog and control idle timeouts and stream limits.

  • qlog export for detailed QUIC packet traces.
  • SSL_set_quic_idle_timeout() and SSL_get_quic_max_streams() to tune connection behaviour.
  • SSL_write_ex2() can send a FIN flag efficiently on QUIC streams.
  • Optional non-blocking poll support for QUIC objects.
#include <openssl/ssl.h>
SSL *s = SSL_new(ctx);
SSL_set_quic_idle_timeout(s, 30000); // 30 seconds idle timeout

How has OpenSSL 3.3 improved performance for modern hardware?

OpenSSL 3.3 introduces several architecture-specific optimisations that accelerate symmetric ciphers and hash functions on current CPUs.

  • AES-GCM unroll8 optimisation for Microsoft Azure Cobalt 100.
  • AES-CTR loop unrolling for ARM Neoverse V1/V2.
  • SHA-3 vectorised implementation on Apple Silicon M3 (M1/M2 already supported).
  • RISC-V vector crypto extensions leveraged for bulk data processing.
  • Hand-written md5 assembly for loongarch64.

In practice these changes can shave 10-20 % off throughput-bound workloads on the supported platforms.

Which critical bugs and CVEs were addressed in OpenSSL 3.3?

OpenSSL 3.3 patches a broad set of high-severity vulnerabilities across RSA-KEM, DANE, CMS, PKCS#12, TLS 1.3 and more.

  • RSA-KEM RSASVE encapsulation failure handling (CVE-2026-31790).
  • DANE client use-after-free (CVE-2026-28387).
  • Delta CRL NULL-pointer dereference (CVE-2026-28388).
  • CMS KeyAgreeRecipientInfo and KeyTransportRecipientInfo NULL dereferences (CVE-2026-28389/90).
  • Hexadecimal conversion buffer overflow (CVE-2026-31789).
  • CMS AuthEnvelopedData stack overflow (CVE-2025-15467).
  • TLS 1.3 CompressedCertificate memory blow-up (CVE-2025-66199).
  • PKCS#12 UTF-8 name handling bugs (CVE-2025-69419/21, CVE-2026-22795).
  • Various ASN.1 type-confusion and validation issues (CVE-2025-69420/21, CVE-2026-22796).

Most of these fixes are transparent to applications, but they eliminate denial-of-service and potential code-execution vectors.

What breaking configuration changes should I watch out for when upgrading to OpenSSL 3.3?

OpenSSL 3.3 tightens several configuration defaults that can affect existing deployments.

  • Provider activation flags in openssl.cnf now accept only 1|yes|true|on (or the negative equivalents) to enable a provider.
  • The default hash for openssl speed -hmac switched from md5 to sha256; specify -mac md5 to retain the old behaviour.
  • OPENSSL_sk_push() now returns 0 on a NULL stack instead of -1, so callers must check for a zero return.
  • HTTP client now caps response headers at 256 lines; large-header services may need to increase SSL_CONF_http_max_headers.
  • BIO_get_new_index() is limited to 127 calls; custom BIO implementations should verify the return value.
  • New Y2038-safe session time APIs (SSL_SESSION_get_time_ex/SSL_SESSION_set_time_ex) replace the old 32-bit time functions.
# Example: enable a provider in openssl.cnf
[provider_sect]
default = yes

FAQ

Does OpenSSL 3.3 require rebuilding applications to use the new QUIC APIs?
No, existing applications continue to work unchanged; the QUIC APIs are optional and only linked when you include the quic provider.

Can I still use md5 for HMAC in openssl speed after the default change?
Yes, you can explicitly specify -mac md5 to override the new default sha256.

What is the new function to set a Y2038-safe session time?
Use SSL_SESSION_set_time_ex with a time_t argument, e.g., SSL_SESSION_set_time_ex(sess, 0, my_time).

Is the BIO_get_new_index limit of 127 something I need to handle?
In practice you rarely exceed 127 custom BIO types, but if you do you must check for a -1 return and avoid creating more.

Do the provider activation config changes affect existing openssl.cnf files?
Yes, you must use true/false or 1/0 values instead of other strings to enable or disable providers.

Are there any deprecated functions in this release?
No functions were officially deprecated in the OpenSSL 3.3 series.

Releases In Branch 3.3

VersionRelease date
3.3.707 Apr 2026
(1 month ago)
3.3.627 Jan 2026
(3 months ago)
3.3.530 Sep 2025
(7 months ago)
3.3.401 Jul 2025
(10 months ago)
3.3.311 Feb 2025
(1 year ago)
3.3.203 Sep 2024
(1 year ago)
3.3.104 Jun 2024
(1 year ago)
3.3.009 Apr 2024
(2 years ago)
3.3.0-beta129 Mar 2024
(2 years ago)
3.3.0-alpha120 Mar 2024
(2 years ago)