CVE-2019-12523

9.1 CRITICAL

📋 TL;DR

This Squid vulnerability allows attackers to bypass access controls by making URN requests that trigger HTTP requests without proper authorization checks. Attackers can access restricted HTTP servers, including those only listening on localhost. All Squid installations before version 4.9 are affected.

💻 Affected Systems

Products:
  • Squid
Versions: All versions before 4.9
Operating Systems: All operating systems running Squid
Default Config Vulnerable: ⚠️ Yes
Notes: Any Squid configuration using URN handling is vulnerable. The vulnerability exists in the URN request processing code.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete bypass of Squid's access controls allowing attackers to reach internal HTTP servers, potentially exposing sensitive internal services or data.

🟠

Likely Case

Unauthorized access to internal HTTP services that should be restricted, potentially leading to data exposure or service compromise.

🟢

If Mitigated

Limited impact if proper network segmentation and additional firewall rules are in place to restrict access to internal services.

🌐 Internet-Facing: HIGH - Internet-facing Squid proxies can be exploited to reach internal HTTP servers that should be inaccessible from outside.
🏢 Internal Only: MEDIUM - Internal attackers could bypass access controls to reach restricted internal HTTP servers they shouldn't have access to.

🎯 Exploit Status

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

Exploitation requires sending specially crafted URN requests to the Squid proxy. Public advisories include technical details that could be used to create exploits.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Squid 4.9 and later

Vendor Advisory: http://www.squid-cache.org/Advisories/SQUID-2019_8.txt

Restart Required: Yes

Instructions:

1. Upgrade Squid to version 4.9 or later. 2. Download from squid-cache.org or use your distribution's package manager. 3. Stop Squid service. 4. Install new version. 5. Restart Squid service.

🔧 Temporary Workarounds

Disable URN handling

all

Disable URN protocol support in Squid configuration to prevent exploitation

Add 'urn deny all' to squid.conf

Restrict URN access

all

Configure ACLs to restrict who can make URN requests

Add appropriate ACL rules for URN requests in squid.conf

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate Squid proxies from sensitive internal HTTP servers
  • Deploy additional firewall rules to restrict Squid's ability to connect to internal HTTP services

🔍 How to Verify

Check if Vulnerable:

Check Squid version with 'squid -v' or 'squid3 -v' and verify if it's below 4.9

Check Version:

squid -v || squid3 -v

Verify Fix Applied:

After patching, verify version is 4.9 or higher and test URN requests to ensure they now go through proper access checks

📡 Detection & Monitoring

Log Indicators:

  • Unusual URN request patterns
  • HTTP requests from Squid to internal servers that bypass normal access logs
  • Access denied messages for URN requests

Network Indicators:

  • HTTP traffic from Squid proxy to internal servers that shouldn't be accessible
  • Unusual URN protocol traffic patterns

SIEM Query:

source="squid_access.log" AND (uri CONTAINS "urn:" OR method="URN")

🔗 References

📤 Share & Export