CVE-2020-24606

8.6 HIGH

📋 TL;DR

This vulnerability allows a trusted peer in a Squid proxy cache hierarchy to cause a denial of service by sending a specially crafted Cache Digest response message. The malformed message triggers a livelock condition that consumes all available CPU cycles, rendering the Squid instance unresponsive. Only Squid deployments using cache_peer with the cache digests feature are affected.

💻 Affected Systems

Products:
  • Squid
Versions: Squid before 4.13 and 5.x before 5.0.4
Operating Systems: All operating systems running affected Squid versions
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when using cache_peer directive with cache digests feature enabled. Default configurations without cache digests are not affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service outage where Squid becomes unresponsive, consuming 100% CPU and disrupting all proxy services for downstream clients.

🟠

Likely Case

Service degradation or complete outage affecting proxy services, potentially disrupting web access for all users behind the proxy.

🟢

If Mitigated

Minimal impact if cache digests feature is disabled or if trusted peer relationships are properly secured and monitored.

🌐 Internet-Facing: MEDIUM - Requires a trusted peer relationship, which typically involves authentication and network access controls, but if exposed could allow DoS from compromised peers.
🏢 Internal Only: HIGH - In internal cache hierarchies, trusted peers could exploit this vulnerability to cause widespread service disruption.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires being a configured trusted peer in the cache hierarchy. The vulnerability is in the cache digest handling code, making exploitation straightforward for authenticated peers.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Squid 4.13 or 5.0.4

Vendor Advisory: https://github.com/squid-cache/squid/security/advisories/GHSA-vvj7-xjgq-g2jg

Restart Required: Yes

Instructions:

1. Download and install Squid 4.13 or 5.0.4 from official sources. 2. Apply the patch SQUID-2020_9.patch if upgrading is not possible. 3. Restart the Squid service to apply the fix.

🔧 Temporary Workarounds

Disable Cache Digests

all

Disable the cache digests feature if not required for your deployment.

Edit squid.conf and remove or comment out 'cache_peer' lines with 'digest' option
Alternatively, remove 'digest' from existing cache_peer configurations

Restrict Trusted Peers

all

Limit cache_peer configurations to only essential, trusted systems and implement network segmentation.

Review and minimize cache_peer entries in squid.conf
Implement firewall rules to restrict access to Squid from cache peers

🧯 If You Can't Patch

  • Disable cache digests feature entirely in squid.conf
  • Implement strict network segmentation and monitoring for all cache_peer connections

🔍 How to Verify

Check if Vulnerable:

Check squid.conf for cache_peer directives containing 'digest' option and verify Squid version is below 4.13 or 5.0.4.

Check Version:

squid -v | grep Version

Verify Fix Applied:

Verify Squid version is 4.13 or higher, or 5.0.4 or higher, and confirm the service is running without CPU spikes from cache digest processing.

📡 Detection & Monitoring

Log Indicators:

  • High CPU usage alerts
  • Process livelock messages in system logs
  • Cache digest processing errors in Squid logs

Network Indicators:

  • Unusual traffic patterns from cache peers
  • Sustained high-volume cache digest exchanges

SIEM Query:

source="squid" AND ("cache_peer" OR "digest") AND (cpu_usage>90 OR "livelock")

🔗 References

📤 Share & Export