OpenSSL 4.1 Final Release - Live
The final release of OpenSSL 4.1 is now live. We would like to thank all those who contributed to the OpenSSL 4.1 release, without whom the OpenSSL Library would not be possible.
This release incorporates the following potentially significant or incompatible changes:
-
Added
VC-WIN32-MSVC2013andVC-WIN64A-MSVC2013build targets to provide internal functions for bridging the gaps in C99 standard support that are present in MSVC 2013. -
Added optimized ML-DSA and ML-KEM NTT operations on
ppc64le; optimized ML-DSA operations onx86_64; AVX-512-optimized SHAKE x4 operations for ML-DSA onx86_64; AVX-512 and VAES optimizations for AES-CBC decryption onx86_64. -
Changed
tsgetutility to useNet::Curl::Easy(from theNet-CurlCPAN distribution) instead of the abandonedWWW::Curl::Easy. Users who rely ontsgetshould installNet::Curl::Easybefore upgrading. -
Dropped Windows-on-Itanium (
VC-WIN64I) and Windows CE (VC-CE) targets from Configurations. -
Dropped
no-ecdsaandno-ecdhoptions fromConfigure, as these options did not really disable the implementations. Useno-ecto disable the elliptic curve support.
This release adds the following new features:
-
Support for DTLS 1.3 (RFC 9147). Refer to the
ossl-guide-dtlsv13(7)manual page for details. -
Support for RFC 8701 GREASE (Generate Random Extensions And Sustain Extensibility).
-
DTLS support in the SSL listener API.
-
Support for IKEV2 KDF.
-
Initial support for the Elbrus2000 (
e2k) architecture.
Known issues in 4.1.0:
-
#32878: When a DTLS 1.3 KeyUpdate is received, all other outstanding post-handshake records are dropped from the retransmission buffer. This means post-handshake records still awaiting an ACK (such as a NewSessionTicket) will no longer be retransmitted if the original transmission is lost. A fix is in progress and planned for a future release.
-
#33277: A permanent receive failure on a DTLS listener can be reported as
SSL_ERROR_WANT_READon an accepted connection. Polling and subsequent accept calls may also fail to report the error, causing applications to continue waiting after a permanent failure. -
#33278: A retryable write failure on a nonblocking connection accepted from a DTLS listener can be reported as
SSL_ERROR_SYSCALLinstead ofSSL_ERROR_WANT_WRITE. Applications treating this result as fatal may close a connection that is still usable. -
#33242: DTLS 1.3 servers may abort handshakes with an
unexpected_messagealert when a client acknowledges part or all of the server’s first flight before sending its response. This can occur after packet loss or while the client is preparing its authentication response.
Please see the CHANGES.md file in the release for a full list of changes since OpenSSL 4.0, and incompatible or potentially significant changes.
You can download the release from our download page or from the GitHub releases page.
OpenSSL 4.1 is not a long term stable (LTS) release. Per OpenSSL’s LTS policy, 4.1 will be supported until November 23, 2027.
Organisations requiring continued support beyond standard timelines are encouraged to contact the OpenSSL Corporation for premium support options.
The next release will be OpenSSL 4.2 in April 2027. Follow us on GitHub, OpenSSL Communities and our Blog.