CVE-2011-4574

9.8 CRITICAL

📋 TL;DR

CVE-2011-4574 is a critical vulnerability in PolarSSL's HAVEGE random number generator that produces weak cryptographic keys when virtualized environments disable the RDTSC instruction. This allows attackers to predict or brute-force encryption keys, compromising TLS/SSL security. Systems using PolarSSL v1.0 and earlier in virtualized environments are primarily affected.

💻 Affected Systems

Products:
  • PolarSSL (now mbed TLS)
  • Any software embedding PolarSSL library
Versions: All versions prior to v1.1
Operating Systems: All operating systems when running in affected virtualized environments
Default Config Vulnerable: ⚠️ Yes
Notes: Primarily affects virtualized environments where hypervisors disable or virtualize the RDTSC instruction. Physical systems are less vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of encrypted communications allowing decryption of TLS/SSL traffic, session hijacking, and man-in-the-middle attacks against affected systems.

🟠

Likely Case

Weakened cryptographic protection making encrypted communications vulnerable to brute-force attacks and cryptographic analysis.

🟢

If Mitigated

Limited impact with proper network segmentation, monitoring, and updated software versions.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires access to encrypted communications and knowledge of the weak random number generation pattern.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: PolarSSL v1.1 and later

Vendor Advisory: https://tls.mbed.org/tech-updates/security-advisories/polarssl-security-advisory-2011-02

Restart Required: Yes

Instructions:

1. Upgrade PolarSSL to version 1.1 or later. 2. Recompile any applications using PolarSSL. 3. Restart affected services. 4. Regenerate cryptographic keys and certificates.

🔧 Temporary Workarounds

Disable HAVEGE in configuration

all

Configure PolarSSL to use alternative random number generators instead of HAVEGE

Set POLARSSL_HAVEGE_C to 0 in config.h and recompile

Enable RDTSC in hypervisor

all

Configure virtualization platform to allow RDTSC instruction passthrough

🧯 If You Can't Patch

  • Isolate affected systems in separate network segments with strict access controls
  • Implement additional encryption layer (VPN/IPsec) for critical communications

🔍 How to Verify

Check if Vulnerable:

Check PolarSSL version and verify if compiled with HAVEGE support in virtualized environment

Check Version:

Check application documentation or use strings command on binary: strings binary | grep -i polarssl

Verify Fix Applied:

Verify PolarSSL version is 1.1+ and test random number generation quality

📡 Detection & Monitoring

Log Indicators:

  • Failed cryptographic operations
  • Unexpected connection resets during TLS handshake

Network Indicators:

  • Unusual patterns in encrypted traffic
  • Multiple failed TLS handshakes

SIEM Query:

Search for PolarSSL version strings in application logs and system inventory

🔗 References

📤 Share & Export