CVE-2024-5814

5.3 MEDIUM

📋 TL;DR

This TLS protocol vulnerability allows a malicious TLS 1.2 server to force a TLS 1.3 client with downgrade capability to use an unintended ciphersuite, potentially enabling downgrade attacks. It affects TLS 1.3 clients that support downgrade to TLS 1.2, particularly those using wolfSSL library implementations.

💻 Affected Systems

Products:
  • wolfSSL
Versions: wolfSSL versions prior to 5.7.0
Operating Systems: All platforms running affected wolfSSL versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects TLS 1.3 clients with downgrade capability enabled. Systems using TLS 1.3 without downgrade support are not vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Man-in-the-middle attacker could downgrade TLS 1.3 connections to weaker TLS 1.2 ciphersuites, potentially enabling decryption of sensitive data or session hijacking.

🟠

Likely Case

Selective downgrade attacks in controlled environments where attackers can intercept and manipulate TLS handshakes between vulnerable clients and malicious servers.

🟢

If Mitigated

Limited impact if clients only connect to trusted servers or have downgrade protection mechanisms enabled.

🌐 Internet-Facing: MEDIUM - Requires client to connect to malicious server, but many clients connect to various internet servers.
🏢 Internal Only: LOW - Internal servers are typically trusted and controlled, reducing attack surface.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires the attacker to control a TLS server that the client connects to, and the client must have TLS 1.3 with downgrade capability enabled.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: wolfSSL 5.7.0

Vendor Advisory: https://github.com/wolfSSL/wolfssl/blob/master/ChangeLog.md#add_later

Restart Required: Yes

Instructions:

1. Update wolfSSL to version 5.7.0 or later. 2. Recompile applications using wolfSSL. 3. Restart affected services.

🔧 Temporary Workarounds

Disable TLS 1.2 downgrade

all

Configure TLS 1.3 clients to disable downgrade capability to TLS 1.2

wolfSSL_CTX_set_options(ctx, WOLFSSL_OP_NO_TLSv1_2)

Enforce TLS 1.3 only

all

Configure clients to use TLS 1.3 exclusively without fallback

wolfSSL_CTX_SetMinVersion(ctx, WOLFSSL_TLSV1_3)
wolfSSL_CTX_SetMaxVersion(ctx, WOLFSSL_TLSV1_3)

🧯 If You Can't Patch

  • Implement network segmentation to restrict client connections to trusted TLS servers only
  • Deploy TLS inspection/proxy solutions that can detect and block malicious downgrade attempts

🔍 How to Verify

Check if Vulnerable:

Check wolfSSL version with: wolfSSL_library_version() or examine compiled binaries for version strings

Check Version:

wolfSSL_library_version() function call or check package manager: wolfssl --version

Verify Fix Applied:

Verify wolfSSL version is 5.7.0 or later and test TLS connections with downgrade scenarios

📡 Detection & Monitoring

Log Indicators:

  • Unexpected TLS version downgrades in connection logs
  • TLS handshake failures with version mismatch errors

Network Indicators:

  • TLS 1.3 ClientHello followed by TLS 1.2 ServerHello from unexpected servers
  • Abnormal ciphersuite negotiation patterns

SIEM Query:

tls.version_change AND (src_tls_version="1.3" AND dst_tls_version="1.2") FROM suspicious_servers

🔗 References

📤 Share & Export