wolfSSL Release 5.7.0 (Mar 20, 2024)
NOTE: * --enable-heapmath is being deprecated and will be removed by end of 2024
NOTE: In future releases, --enable-des3 (which is disabled by default) will be insufficient in itself to enable DES3 in TLS cipher suites. A new option, --enable-des3-tls-suites, will need to be supplied in addition. This option should only be used in backward compatibility scenarios, as it is inherently insecure.
NOTE: This release switches the default ASN.1 parser to the new ASN template code. If the original ASN.1 code is preferred define WOLFSSL_ASN_ORIGINAL
to use it. See PR #7199.
Vulnerabilities
-
[High] CVE-2024-0901 Potential denial of service and out of bounds read. Affects TLS 1.3 on the server side when accepting a connection from a malicious TLS 1.3 client. If using TLS 1.3 on the server side it is recommended to update the version of wolfSSL used. Fixed in this GitHub pull request #7099
-
[Med] CVE-2024-1545 Fault Injection vulnerability in RsaPrivateDecryption function that potentially allows an attacker that has access to the same system with a victims process to perform a Rowhammer fault injection. Thanks to Junkai Liang, Zhi Zhang, Xin Zhang, Qingni Shen for the report (Peking University, The University of Western Australia)."
Fixed in this GitHub pull request #7167 -
[Med] Fault injection attack with EdDSA signature operations. This affects ed25519 sign operations where the system could be susceptible to Rowhammer attacks. Thanks to Junkai Liang, Zhi Zhang, Xin Zhang, Qingni Shen for the report (Peking University, The University of Western Australia).
Fixed in this GitHub pull request #7212
New Feature Additions
- Added --enable-experimental configure flag to gate out features that are currently experimental. Now liboqs, kyber, lms, xmss, and dual-alg-certs require the --enable-experimental flag.
POST QUANTUM SUPPORT ADDITIONS
- Experimental framework for using wolfSSL’s XMSS implementation (PR 7161)
- Experimental framework for using wolfSSL’s LMS implementation (PR 7283)
- Experimental wolfSSL Kyber implementation and assembly optimizations, enabled with --enable-experimental --enable-kyber (PR 7318)
- Experimental support for post quantum dual key/signature certificates. A few known issues and sanitizer checks are in progress with this feature. Enabled with the configure flags --enable-experimental --enable-dual-alg-certs (PR 7112)
- CryptoCb support for PQC algorithms (PR 7110)
OTHER FEATURE ADDITIONS
- The Linux kernel module now supports registration of AES-GCM, AES-XTS, AES-CBC, and AES-CFB with the kernel cryptosystem through the new --enable-linuxkm-lkcapi-register option, enabling automatic use of wolfCrypt implementations by the dm-crypt/luks and ESP subsystems. In particular, wolfCrypt AES-XTS with –enable-aesni is faster than the native kernel implementation.
- CryptoCb hook to one-shot CMAC functions (PR 7059)
- BER content streaming support for PKCS7_VerifySignedData and sign/encrypt operations (PR 6961 & 7184)
- IoT-Safe SHA-384 and SHA-512 support (PR 7176)
- I/O callbacks for content and output with PKCS7 bundle sign/encrypt to reduce peak memory usage (PR 7272)
- Microchip PIC24 support and example project (PR 7151)
- AutoSAR shim layer for RNG, SHA256, and AES (PR 7296)
- wolfSSL_CertManagerUnloadIntermediateCerts API to clear intermediate certs added to certificate store (PR 7245)
- Implement SSL_get_peer_signature_nid and SSL_get_peer_signature_type_nid (PR 7236)
Enhancements and Optimizations
- Remove obsolete user-crypto functionality and Intel IPP support (PR 7097)
- Support for RSA-PSS signatures with CRL use (PR 7119)
- Enhancement for AES-GCM use with Xilsecure on Microblaze (PR 7051)
- Support for crypto cb only build with ECC and NXP CAAM (PR 7269)
- Improve liboqs integration adding locking and init/cleanup functions (PR 7026)
- Prevent memory access before clientSession->serverRow and clientSession->serverIdx are sanitized (PR 7096)
- Enhancements to reproducible build (PR 7267)
- Update Arduino example TLS Client/Server and improve support for ESP32 (PR 7304 & 7177)
- XC32 compiler version 4.x compatibility (PR 7128)
- Porting for build on PlayStation 3 and 4 (PR 7072)
- Improvements for Espressif use; SHA HW/SW selection and use on ESP32-C2/ESP8684, wolfSSL_NewThread() type, component cmake fix, and update TLS client example for ESP8266 (PR 7081, 7173, 7077, 7148, 7240)
- Allow crypto callbacks with SHA-1 HW (PR 7087)
- Update OpenSSH port to version 9.6p1(PR 7203)
- ARM Thumb2 enhancements, AES-GCM support for GCM_SMALL, alignment fix on key, fix for ASM clobber list (PR 7291,7301,7221)
- Expand heap hint support for static memory build with more x509 functions (PR 7136)
- Improving ARMv8 ChaCha20 ASM (alignment) (PR 7182)
- Unknown extension callback wolfSSL_CertManagerSetUnknownExtCallback added to CertManager (PR 7194)
- Implement wc_rng_new_ex for use with devID’s with crypto callback (PR 7271)
- Allow reading 0-RTT data after writing 0.5-RTT data (PR 7102)
- Send alert on bad PSK binder error (PR 7235)
- Enhancements to CMake build files for use with cross compiling (PR 7188)
Fixes
- Fix for checking result of MAC verify when no AAD is used with AES-GCM and Xilinx Xilsecure (PR 7051)
- Fix for Aria sign use (PR 7082)
- Fix for invalid
dh_ffdhe_test
test case using Intel QuickAssist (PR 7085) - Fixes for TI AES and SHA on TM4C with HW acceleration and add full AES GCM and CCM support with TLS (PR 7018)
- Fixes for STM32 PKA use with ECC (PR 7098)
- Fixes for TLS 1.3 with crypto callbacks to offload KDF / HMAC operation (PR 7070)
- Fix include path for FSP 3.5 on Renesas RA6M4 (PR 7101)
- Siphash x64 asm fix for use with older compilers (PR 7299)
- Fix for SGX build with SP (PR 7308)
- Fix to Make it mandatory that the cookie is sent back in new ClientHello when seen in a HelloRetryRequest with (PR 7190)
- Fix for wrap around behavior with BIO pairs (PR 7169)
- OCSP fixes for parsing of response correctly when there was a revocation reason and returning correct error value with date checks (PR 7241 & 7255)
- Fix build with
NO_STDIO_FILESYSTEM
and improve checks forXGETENV
(PR 7150) - Fix for DTLS sequence number and cookie when downgrading DTLS version (PR 7214)
- Fix for write_dup use with chacha-poly cipher suites (PR 7206)
- Fix for multiple handshake messages in one record failing with OUT_OF_ORDER_E when downgrading from TLS 1.3 to TLS 1.2 (PR 7141)
- Fix for AES ECB build with Thumb and alignment (PR 7094)
- Fix for negotiate handshake until the end in wolfSSL_read/wolfSSL_write if hitting an edge case with want read/write (PR 7237)