CVE-2020-11945

9.8 CRITICAL

📋 TL;DR

CVE-2020-11945 is a critical integer overflow vulnerability in Squid proxy server's Digest Authentication mechanism. A remote attacker can replay sniffed authentication nonces to bypass access controls and potentially execute arbitrary code. This affects all Squid installations using Digest Authentication before version 5.0.2.

💻 Affected Systems

Products:
  • Squid
Versions: All versions before 5.0.2
Operating Systems: All operating systems running vulnerable Squid versions
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when Digest Authentication is enabled. Basic and NTLM authentication are not affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise, data theft, and lateral movement within the network.

🟠

Likely Case

Authentication bypass allowing unauthorized access to protected resources and potential privilege escalation.

🟢

If Mitigated

Limited impact with proper network segmentation and authentication monitoring in place.

🌐 Internet-Facing: HIGH - Squid is often deployed as an internet-facing proxy server, making it directly accessible to attackers.
🏢 Internal Only: MEDIUM - Internal Squid deployments are still vulnerable to internal attackers or compromised systems.

🎯 Exploit Status

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

Exploit requires ability to sniff network traffic containing Digest Authentication nonces. The vulnerability is well-documented with public proof-of-concept available.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 5.0.2 or later

Vendor Advisory: http://www.squid-cache.org/Advisories/SQUID-2020_2.txt

Restart Required: Yes

Instructions:

1. Backup current Squid configuration. 2. Upgrade Squid to version 5.0.2 or later using your package manager. 3. Restart Squid service. 4. Verify the upgrade was successful.

🔧 Temporary Workarounds

Disable Digest Authentication

all

Temporarily disable Digest Authentication until patching can be completed

Edit squid.conf and remove or comment out 'auth_param digest' lines
Run: squid -k reconfigure

Network Segmentation

all

Restrict access to Squid proxy to trusted networks only

Configure firewall rules to limit Squid access
Use ACLs in squid.conf to restrict client IPs

🧯 If You Can't Patch

  • Implement strict network monitoring for authentication bypass attempts
  • Deploy Squid behind a WAF with authentication protection rules

🔍 How to Verify

Check if Vulnerable:

Check Squid version and Digest Authentication configuration: squid -v | grep Version && grep -i 'auth_param digest' /etc/squid/squid.conf

Check Version:

squid -v | grep Version

Verify Fix Applied:

Verify Squid version is 5.0.2 or later: squid -v | grep 'Version 5\.0\.[2-9]\|Version [5-9]\.[1-9]'

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed authentication attempts from same source
  • Successful authentication with replayed nonces
  • Unexpected access to restricted resources

Network Indicators:

  • Unusual Digest Authentication traffic patterns
  • Repeated authentication requests with same nonce

SIEM Query:

source="squid" AND ("authentication failure" OR "access denied") | stats count by src_ip

🔗 References

📤 Share & Export