Latest in branch 3.4
3.4.5
Released 07 Apr 2026
(1 month ago)
SoftwareOpenSSL
Branch3.4
Status
Supported
Initial release3.4.0
22 Oct 2024
(1 year ago)
Latest release3.4.5
07 Apr 2026
(1 month ago)
End of
OSS support
22 Oct 2026
(Ends in 5 months)
Premium supportUnavailable
Release noteshttps://github.com/openssl/openssl/releases/tag/openssl-3.4.5
Source codehttps://github.com/openssl/openssl/tree/openssl-3.4.5
Downloadhttps://github.com/openssl/openssl/releases/tag/openssl-3.4.5
OpenSSL 3.4 ReleasesView full list

What Is New in OpenSSL 3.4

Category Highlights
New Features Composite signature algorithms (e.g., RSA-SHA2-256), integrity-only TLS 1.3 cipher suites, RFC 9579 PBMAC1, jitterentropy RNG, attribute-certificate support
Improvements FIPS provider indicators, pre-computed ECC group values for P-256, configurable OPENSSLDIR/ENGINESDIR/MODULESDIR on Windows, config_diagnostics validation
Bug Fixes Numerous CVE-patched issues from 3.4.1 through 3.4.5, including DANE use-after-free, RSA-KEM handling, NULL dereferences, heap overflows, TLS 1.3 compressed certificate allocation
Breaking Changes SHAKE-128/256 require explicit xoflen, empty renegotiation extension replaces SCSV, Y2038-safe session APIs replace deprecated time functions
Deprecations TS_VERIFY_CTX_set_* functions, SSL_SESSION_get_time / SSL_SESSION_set_time, SSL_CTX_flush_sessions, legacy XOF defaults

What new cryptographic algorithms and signature support does OpenSSL 3.4 provide?

OpenSSL 3.4 adds composite signature algorithms such as RSA-SHA2-256 and introduces integrity-only TLS 1.3 cipher suites defined in RFC 9150.

  • Composite signatures are exposed via the EVP_PKEY algorithm identifier RSA-SHA2-256 and can be used with EVP_DigestSignInit.
  • TLS 1.3 now supports TLS_SHA256_SHA256 and TLS_SHA384_SHA384, useful for environments that require separate hash for handshake and traffic.
  • RFC 9579 PBMAC1 is implemented in the PKCS#12 module, allowing password-based MACs with stronger key derivation.
EVP_PKEY *pkey = EVP_PKEY_new_raw_private_key(EVP_PKEY_RSA, NULL, keybuf, keylen);
EVP_MD *md = EVP_get_digestbyname("SHA256");
EVP_DigestSignInit(ctx, NULL, md, NULL, pkey); // composite RSA-SHA2-256

How have the provider and FIPS modules changed in OpenSSL 3.4?

The FIPS provider now includes explicit FIPS-mode indicators and marks X25519/X448 as fips=no, while the default provider gains optional jitterentropy RNG support.

  • FIPS indicators can be queried via OSSL_PROVIDER_get_capabilities() to confirm that the provider is operating in validated mode.
  • X25519 and X448 are still available but will be disabled when the FIPS provider is loaded with fips=yes.
  • The jitterentropy RNG source is linked statically; enable it by adding rng = jitter to the openssl.cnf RNG section.

Which APIs were deprecated or replaced in OpenSSL 3.4 and what should developers use instead?

Several legacy APIs have been superseded by Y2038-safe variants and new "_set0_" helpers.

  • TS_VERIFY_CTX_set_* functions are replaced by TS_VERIFY_CTX_set0_* which accept const pointers and avoid accidental modification.
  • Time-related session functions now use SSL_SESSION_get_time_ex() and SSL_SESSION_set_time_ex(), which accept a time_t that is safe on platforms with 64-bit time.
  • SSL_CTX_flush_sessions() is deprecated; use SSL_CTX_flush_sessions_ex() for explicit control.

What are the most critical security fixes in the OpenSSL 3.4.x patch releases?

Each point-release from 3.4.1 to 3.4.5 addresses multiple CVEs, with the most severe being a High-severity fix in 3.4.4 and a Moderate-severity fix in 3.4.5.

  • 3.4.5: Fixed use-after-free in DANE client code (CVE-2026-28387) and RSA-KEM encapsulation failure handling (CVE-2026-31790).
  • 3.4.4: Patched PBMAC1 parameter validation (CVE-2025-11187) and TLS 1.3 compressed certificate memory blow-up (CVE-2025-66199).
  • Earlier releases also fixed NULL dereferences in SSL_CIPHER_find(), heap overflows in BIO line buffering, and out-of-bounds writes in PKCS#12 handling.

What configuration and runtime behavior changes should operators be aware of in OpenSSL 3.4?

OpenSSL 3.4 introduces stricter configuration validation and alters default TLS handshake extensions.

  • Setting config_diagnostics=1 in openssl.cnf forces SSL_CTX_new() and SSL_CTX_new_ex() to return errors on misconfiguration, helping catch problems early.
  • On Windows, OPENSSLDIR, ENGINESDIR, and MODULESDIR can now be overridden at runtime via registry keys, removing the need for rebuilds.
  • Clients with a minimum TLS version greater than 1.0 now send an empty renegotiation extension instead of the legacy SCSV, improving compliance with modern servers.

FAQ

Does OpenSSL 3.4 support integrity-only cipher suites in TLS 1.3?
Yes it adds TLS_SHA256_SHA256 and TLS_SHA384_SHA384 cipher suites defined in RFC 9150.

How do I enable the new jitterentropy RNG source in OpenSSL 3.4?
Add rng = jitter to the openssl.cnf file under the appropriate RNG section.

What function replaces SSL_SESSION_get_time in OpenSSL 3.4?
Use SSL_SESSION_get_time_ex which is Y2038-safe.

Are the X25519 and X448 implementations in the FIPS provider approved for FIPS mode?
No they are marked fips=no and cannot be used when the FIPS provider is in strict mode.

How can I trigger configuration validation errors during SSL_CTX creation in OpenSSL 3.4?
Set config_diagnostics=1 in openssl.cnf and SSL_CTX_new will return an error on misconfiguration.

Which CVE in the 3.4.5 release addresses a use-after-free in DANE client code?
CVE-2026-28387 fixes the potential use-after-free in DANE client code.

Releases In Branch 3.4

VersionRelease date
3.4.507 Apr 2026
(1 month ago)
3.4.427 Jan 2026
(3 months ago)
3.4.330 Sep 2025
(7 months ago)
3.4.201 Jul 2025
(10 months ago)
3.4.111 Feb 2025
(1 year ago)
3.4.022 Oct 2024
(1 year ago)
3.4.0-beta107 Oct 2024
(1 year ago)
3.4.0-alpha105 Sep 2024
(1 year ago)