CVE-2024-23744

7.5 HIGH

📋 TL;DR

A vulnerability in Mbed TLS 3.5.1 causes persistent handshake denial when a client sends a TLS 1.3 ClientHello message without extensions. This allows attackers to cause denial of service by preventing TLS handshake completion. Any system using the vulnerable Mbed TLS version for TLS 1.3 connections is affected.

💻 Affected Systems

Products:
  • Mbed TLS
Versions: Version 3.5.1 only
Operating Systems: All operating systems using Mbed TLS
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects TLS 1.3 connections. TLS 1.2 and earlier are not vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete denial of TLS 1.3 service, making affected services unavailable to legitimate clients until service restart.

🟠

Likely Case

Intermittent TLS handshake failures causing service disruption and connection timeouts.

🟢

If Mitigated

Minimal impact with proper monitoring and quick incident response to restart affected services.

🌐 Internet-Facing: HIGH - Attackers can easily send malformed ClientHello packets to internet-facing services.
🏢 Internal Only: MEDIUM - Requires internal network access but still exploitable by malicious insiders or compromised internal systems.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires sending a specially crafted TLS 1.3 ClientHello packet without extensions. The issue is documented in the GitHub repository with technical details.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Mbed TLS 3.5.2 or later

Vendor Advisory: https://github.com/Mbed-TLS/mbedtls/issues/8694

Restart Required: Yes

Instructions:

1. Update Mbed TLS to version 3.5.2 or later. 2. Recompile any applications using Mbed TLS. 3. Restart affected services. 4. Verify TLS 1.3 connections work properly.

🔧 Temporary Workarounds

Disable TLS 1.3

all

Temporarily disable TLS 1.3 support to prevent exploitation while maintaining TLS 1.2 functionality.

Configure server to only support TLS 1.2 and earlier protocols

Rate limiting

all

Implement connection rate limiting to reduce impact of denial of service attempts.

Configure firewall or load balancer to limit connections per source IP

🧯 If You Can't Patch

  • Implement network filtering to block malformed TLS 1.3 ClientHello packets without extensions
  • Deploy TLS termination proxies with patched versions in front of vulnerable systems

🔍 How to Verify

Check if Vulnerable:

Check if Mbed TLS version is exactly 3.5.1 and TLS 1.3 is enabled.

Check Version:

Check application documentation or use: mbedtls_version_check() if available in your implementation

Verify Fix Applied:

Verify Mbed TLS version is 3.5.2 or later and test TLS 1.3 connections work properly.

📡 Detection & Monitoring

Log Indicators:

  • Multiple TLS handshake failures
  • Connection resets during TLS negotiation
  • Increased error rates for TLS 1.3 connections

Network Indicators:

  • Unusual patterns of TLS 1.3 ClientHello packets
  • High volume of failed TLS handshakes from single sources

SIEM Query:

source="tls_logs" AND (error="handshake_failure" OR error="protocol_version") AND tls_version="1.3" | stats count by src_ip

🔗 References

📤 Share & Export