|
| 1 | +# wolfSSL Release 5.7.2 (July 08, 2024) |
| 2 | + |
| 3 | +Release 5.7.2 has been developed according to wolfSSL's development and QA |
| 4 | +process (see link below) and successfully passed the quality criteria. |
| 5 | +https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assurance |
| 6 | + |
| 7 | +NOTE: * --enable-heapmath is being deprecated and will be removed by end of 2024 |
| 8 | + |
| 9 | +## Vulnerabilities |
| 10 | +* [Medium] CVE-2024-1544 |
| 11 | +Potential ECDSA nonce side channel attack in versions of wolfSSL before 5.6.6 with wc_ecc_sign_hash calls. Generating the ECDSA nonce k samples a random number r and then truncates this randomness with a modular reduction mod n where n is the order of the elliptic curve. Analyzing the division through a control-flow revealing side-channel reveals a bias in the most significant bits of k. Depending on the curve this is either a negligible bias or a significant bias large enough to reconstruct k with lattice reduction methods. Thanks to Luca Wilke, Florian Sieck and Thomas Eisenbarth (University of Lübeck) for reporting the vulnerability. Details will appear in the proceedings of CCS 24. |
| 12 | +Fixed https://github.com/wolfSSL/wolfssl/pull/7020 |
| 13 | + |
| 14 | + |
| 15 | +* [Medium] CVE-2024-5288 |
| 16 | +A private key blinding operation, enabled by defining the macro WOLFSSL_BLIND_PRIVATE_KEY, was added to mitigate a potential row hammer attack on ECC operations. If performing ECC private key operations in an environment where a malicious user could gain fine control over the device and perform row hammer style attacks it is recommended to update the version of wolfSSL used and to build with WOLFSSL_BLIND_PRIVATE_KEY defined. Thanks to Kemal Derya, M. Caner Tol, Berk Sunar for the report (Vernam Applied Cryptography and Cybersecurity Lab at Worcester Polytechnic Institute) |
| 17 | +Fixed in github pull request https://github.com/wolfSSL/wolfssl/pull/7416 |
| 18 | + |
| 19 | + |
| 20 | +* [Low] When parsing a provided maliciously crafted certificate directly using wolfSSL API, outside of a TLS connection, a certificate with an excessively large number of extensions could lead to a potential DoS. There are existing sanity checks during a TLS handshake with wolfSSL which mitigate this issue. Thanks to Bing Shi for the report. |
| 21 | +Fixed in github pull request https://github.com/wolfSSL/wolfssl/pull/7597 |
| 22 | + |
| 23 | +* [Low] CVE-2024-5991 |
| 24 | +In the function MatchDomainName(), input param str is treated as a NULL terminated string despite being user provided and unchecked. Specifically, the Openssl compatibility function X509_check_host() takes in a pointer and length to check against, with no requirements that it be NULL terminated. While calling without a NULL terminated string is very uncommon, it is still technically allowed. If a caller was attempting to do a name check on a non*NULL terminated buffer, the code would read beyond the bounds of the input array until it found a NULL terminator. |
| 25 | +Fixed in github pull request https://github.com/wolfSSL/wolfssl/pull/7604 |
| 26 | + |
| 27 | +* [Medium] CVE-2024-5814 |
| 28 | +A malicious TLS1.2 server can force a TLS1.3 client with downgrade capability to use a ciphersuite that it did not agree to and achieve a successful connection. This is because, aside from the extensions, the client was skipping fully parsing the server hello when downgrading from TLS 1.3. |
| 29 | +Fixed in github pull request https://github.com/wolfSSL/wolfssl/pull/7619 |
| 30 | + |
| 31 | +* [Medium] OCSP stapling version 2 response verification bypass issue when a crafted response of length 0 is received. Found with internal testing. |
| 32 | +Fixed in github pull request https://github.com/wolfSSL/wolfssl/pull/7702 |
| 33 | + |
| 34 | +* [Medium] OCSP stapling version 2 revocation bypass with a retry of a TLS connection attempt. A revoked CA certificate could incorrectly be loaded into the trusted signers list and used in a repeat connection attempt. Found with internal testing. |
| 35 | +Fixed in github pull request https://github.com/wolfSSL/wolfssl/pull/7702 |
| 36 | + |
| 37 | + |
| 38 | +## New Feature Additions |
| 39 | +* Added Dilithium/ML-DSA: Implementation of ML-DSA-44/65/87 (PR 7622) |
| 40 | +* AES RISC-V 64-bit ASM: ECB/CBC/CTR/GCM/CCM (PR 7569) |
| 41 | +* Added CUDA support for AES encryption (PR 7436) |
| 42 | +* Added support for gRPC (PR 7445) |
| 43 | +* Added function wc_RsaPrivateKeyDecodeRaw to import raw RSA private keys (PR 7608) |
| 44 | +* Added crypto callback for SHA-3 (PR 7670) |
| 45 | +* Support for Infineon Modus Toolbox with wolfSSL (PR 7369) |
| 46 | +* Allow user to send a user_canceled alert by calling wolfSSL_SendUserCanceled (PR 7590) |
| 47 | +* C# wrapper SNI support added (PR 7610) |
| 48 | +* Quantum-safe algorithm support added to the Linux kernel module (PR 7574) |
| 49 | +* Support for NIST 800-56C Option 1 KDF, using the macro WC_KDF_NIST_SP_800_56C added (PR 7589) |
| 50 | +* AES-XTS streaming mode added, along with hardware acceleration and kernel module use (PR 7522, 7560, 7424) |
| 51 | +* PlatformIO FreeRTOS with ESP build and addition of benchmark and test example applications (PR 7528, 7413, 7559, 7542) |
| 52 | + |
| 53 | + |
| 54 | +## Enhancements and Optimizations |
| 55 | +* Expanded STM32 AES hardware acceleration support for use with STM32H5 (PR 7578) |
| 56 | +* Adjusted wc_xmss and wc_lms settings to support use with wolfBoot (PR 7393) |
| 57 | +* Added the --enable-rpk option to autotools build for using raw public key support (PR 7379) |
| 58 | +* SHA-3 Thumb2, ARM32 assembly implementation added (PR 7667) |
| 59 | +* Improvements to RSA padding to expose Pad/Unpad APIs (PR 7612) |
| 60 | +* Updates and API additions for supporting socat version 1.8.0.0 (PR 7594) |
| 61 | +* cmake build improvements, expanding build options with SINGLE_THREADED and post-quantum algorithms, adjusting the generation of options.h file and using “yes;no” boolean instead of strings (PR 7611, 7546, 7479, 7480, 7380) |
| 62 | +* Improvements for Renesas RZ support (PR 7474) |
| 63 | +* Improvements to dual algorithm certificates for post-quantum keys (PR 7286) |
| 64 | +* Added wolfSSL_SessionIsSetup so the user can check if a session ticket has been sent by the server (PR 7430) |
| 65 | +* hostap updates: Implement PACs for EAP-FAST and filter cipher list on TLS version change (PR 7446) |
| 66 | +* Changed subject name comparison to match different upper and lower cases (PR 7420) |
| 67 | +* Support for DTLS 1.3 downgrade when using PSK (PR 7367) |
| 68 | +* Update to static memory build for more generic memory pools used (PR 7418) |
| 69 | +* Improved performance of Kyber C implementation (PR 7654) |
| 70 | +* Support for ECC_CACHE_CURVE with no malloc (PR 7490) |
| 71 | +* Added the configure option --enable-debug-trace-errcodes (macro WOLFSSL_DEBUG_TRACE_ERROR_CODES) which enables more debug tracking of error code values (PR 7634) |
| 72 | +* Enhanced wc_MakeRsaKey and wc_RsaKeyToDer to work with WOLFSSL_NO_MALLOC (PR 7362) |
| 73 | +* Improvements to assembly implementations of ChaCha20 and Poly1305 ASM for use with MSVC (PR 7319) |
| 74 | +* Cortex-M inline assembly labels with unique number appended (PR 7649) |
| 75 | +* Added secret logging callback to TLS <= 1.2, enabled with the macro HAVE_SECRET_CALLBACK (PR 7372) |
| 76 | +* Made wc_RNG_DRBG_Reseed() a public wolfCrypt API (PR 7386) |
| 77 | +* Enabled DES3 support without the DES3 ciphers. To re-enable DES3 cipher suites, use the configure flag --enable-des3-tls-suites (PR 7315) |
| 78 | +* Added stubs required for latest nginx (1.25.5) (PR 7449) |
| 79 | +* Added option for using a custom salt with the function wc_ecc_ctx_set_own_salt (PR 7552) |
| 80 | +* Added PQ files for Windows (PR 7419) |
| 81 | +* Enhancements to static memory feature, adding the option for a global heap hint (PR 7478) and build options for a lean or debug setting, enabled with --enable-staticmemory=small or --enable-staticmemory=debug (PR 7597) |
| 82 | +* Updated --enable-jni to define SESSION_CERTS for wolfJSSE (PR 7557) |
| 83 | +* Exposed DTLS in Ada wrapper and updated examples (PR 7397) |
| 84 | +* Added additional minimum TLS extension size sanity checks (PR 7602) |
| 85 | +* ESP improvements: updating the examples and libraries, updates for Apple HomeKit SHA/SRP, and fix for endianness with SHA512 software fallback (PR 7607, 7392, 7505, 7535) |
| 86 | +* Made the wc_CheckCertSigPubKey API publicly available with the define of the macro WOLFSSL_SMALL_CERT_VERIFY (PR 7599) |
| 87 | +* Added an alpha/preview of additional FIPS 140-3 full submission, bringing additional algorithms such as SRTP-KDF, AES-XTS, GCM streaming, AES-CFB, ED25519, and ED448 into the FIPS module boundary (PR 7295) |
| 88 | +* XCODE support for v5.2.3 of the FIPS module (PR 7140) |
| 89 | +* Expanded OpenSSL compatibility layer and added EC_POINT_hex2point (PR 7191) |
| 90 | + |
| 91 | +## Fixes |
| 92 | +* Fixed the NXP MMCAU HW acceleration for SHA-256 (PR 7389) |
| 93 | +* Fixed AES-CFB1 encrypt/decrypt on size (8*x-1) bits (PR 7431) |
| 94 | +* Fixed use of %rip with SHA-256 x64 assembly (PR 7409) |
| 95 | +* Fixed OCSP response message build for DTLS (PR 7671) |
| 96 | +* Handled edge case in wc_ecc_mulmod() with zero (PR 7532) |
| 97 | +* Fixed RPK (Raw Public Key) to follow certificate use correctly (PR 7375) |
| 98 | +* Added sanity check on record header with QUIC use (PR 7638) |
| 99 | +* Added sanity check for empty directory strings in X.509 when parsing (PR 7669) |
| 100 | +* Added sanity check on non-conforming serial number of 0 in certificates being parsed (PR 7625) |
| 101 | +* Fixed wolfSSL_CTX_set1_sigalgs_list() to make the TLS connection conform to the selected sig hash algorithm (PR 7693) |
| 102 | +* Various fixes for dual algorithm certificates including small stack use and support for Certificate Signing Requests (PR 7577) |
| 103 | +* Added sanity check for critical policy extension when wolfSSL is built without policy extension support enabled (PR 7388) |
| 104 | +* Added sanity check that the ed25519 signature is smaller than the order (PR 7513) |
| 105 | +* Fixed Segger emNet to handle non-blocking want read/want write (PR 7581) |
| 106 | + |
| 107 | + |
1 | 108 | # wolfSSL Release 5.7.0 (Mar 20, 2024)
|
2 | 109 |
|
3 | 110 | Release 5.7.0 has been developed according to wolfSSL's development and QA
|
|
0 commit comments