Latest in branch 3.1
3.1.8
Released 11 Feb 2025
(1 year ago)
SoftwareOpenSSL
Branch3.1
Status
End of life
Initial release3.1.0
14 Mar 2023
(3 years ago)
Latest release3.1.8
11 Feb 2025
(1 year ago)
End of
OSS support
14 Mar 2025
(Ended 1 year, 2 months ago)
Premium supportUnavailable
Release noteshttps://github.com/openssl/openssl/releases/tag/openssl-3.1.8
Source codehttps://github.com/openssl/openssl/tree/openssl-3.1.8
Downloadhttps://github.com/openssl/openssl/releases/tag/openssl-3.1.8
OpenSSL 3.1 ReleasesView full list

What Is New in OpenSSL 3.1

CategoryHighlights
New FeaturesTLS 1.2 enforces extended master secret in FIPS mode; new assembler-optimized implementations for several algorithms; support for PowerISA 2.07 on PowerPC.
ImprovementsPerformance enhancements for symmetric cipher key/IV handling; mitigations for slow OBJ_obj2txt and DH checks; faster X.509 name validation.
Bug FixesFixed timing side-channel in ECDSA, OOB memory access in GF(2^m) curves, use-after-free in SSL_free_buffers, buffer overreads in SSL_select_next_proto and AES-XTS, POLY1305 register corruption on PowerPC and Windows.
Breaking ChangesSSL 3, TLS 1.0, TLS 1.1, and DTLS 1.0 operate only at security level 0; LHASH statistics functions deprecated.
DeprecationsLHASH statistics functions removed; empty associated data entries are no longer ignored for AES-SIV.

What security vulnerabilities were fixed in OpenSSL 3.1?

OpenSSL 3.1 addresses a range of CVEs covering timing attacks, memory safety, and protocol-level DoS issues.

  • Timing side-channel in ECDSA signature computation (CVE-2024-13176).
  • Out-of-bounds memory access with invalid GF(2^m) curve parameters (CVE-2024-9143).
  • Denial-of-service in X.509 name checks (CVE-2024-6119).
  • Buffer overread in SSL_select_next_proto (CVE-2024-5535).
  • Use-after-free after SSL_free_buffers (CVE-2024-4741).
  • POLY1305 MAC corrupting vector registers on PowerPC (CVE-2023-6129) and on Windows (CVE-2023-4807).

How have TLS protocol defaults changed in OpenSSL 3.1?

TLS 1.2 now requires the extended master secret when the FIPS provider is enabled, and older protocol versions are restricted to security level 0.

  • When built with enable-fips, TLS 1.2 mandates the extended master secret by default.
  • SSL 3, TLS 1.0, TLS 1.1, and DTLS 1.0 are still available but only at security level 0, effectively discouraging their use.
  • These defaults reduce the attack surface for downgrade attacks and improve compliance with modern security policies.

What performance and algorithmic improvements does OpenSSL 3.1 bring?

OpenSSL 3.1 adds new assembler-optimized implementations and fixes slow code paths in DH, RSA, and OBJ handling.

  • New assembly kernels for several symmetric ciphers and hash functions improve throughput on x86-64, ARM64, and PowerPC.
  • Mitigations for very slow OBJ_obj2txt() with gigantic OID sub-identities (CVE-2023-2650).
  • Reduced runtime for DH parameter checks, especially with large Q values and oversized modulus (CVE-2023-3817, CVE-2023-3446).
  • Symmetric cipher key and IV resize handling corrected to avoid unnecessary copies.
# Example: list supported ciphers with their performance hints
openssl ciphers -v | grep -i aes256

Which APIs and features are deprecated or breaking in OpenSSL 3.1?

The LHASH statistics functions are deprecated and SSL 3/TLS 1.0/1.1/DTLS 1.0 are limited to security level 0, which may require configuration changes.

  • LHASH statistics functions (e.g., lh_stats()) are removed; applications should migrate to the new provider-based statistics API.
  • Older protocol versions now default to security level 0, so applications that rely on default security level 1 may need to explicitly set a higher level.
  • Empty associated data entries are no longer ignored for AES-SIV, affecting some legacy AEAD usage patterns.

FAQ

Does OpenSSL 3.1 require changes to my existing TLS configuration?
Most configurations will continue to work, but you may need to enable the extended master secret in FIPS mode or adjust security level settings for legacy protocols.

How can I verify that the extended master secret is active in FIPS mode?
Run openssl s_client -connect host:443 -tls1_2 and check the handshake logs for the phrase Extended Master Secret.

What command shows the OpenSSL version and enabled providers?
Use openssl version -a to display the build details and the list of active providers.

Is the POLY1305 fix relevant for PowerPC users?
Yes, the fix prevents vector register corruption on PowerPC CPUs that support PowerISA 2.07.

Do the DH performance mitigations affect key generation time?
They reduce worst-case latency for large Q values and oversized moduli, making DH key generation more predictable.

Are the LHASH deprecation warnings harmless?
They indicate that the functions will be removed in a future major release, so you should replace them now.

Releases In Branch 3.1

VersionRelease date
3.1.811 Feb 2025
(1 year ago)
3.1.703 Sep 2024
(1 year ago)
3.1.604 Jun 2024
(1 year ago)
3.1.530 Jan 2024
(2 years ago)
3.1.424 Oct 2023
(2 years ago)
3.1.319 Sep 2023
(2 years ago)
3.1.201 Aug 2023
(2 years ago)
3.1.130 May 2023
(2 years ago)
3.1.014 Mar 2023
(3 years ago)
3.1.0-beta121 Dec 2022
(3 years ago)
3.1.0-alpha101 Dec 2022
(3 years ago)