Squidbleed: Memory Leak in Squid Proxy Undetected Since 1990s

A critical memory disclosure vulnerability dubbed “Squidbleed” has been discovered in Squid proxy caching server, affecting versions dating back to the 1990s. The flaw (CVE-2024-23638) allows unauthenticated remote attackers to leak sensitive memory contents through malformed HTTP requests. With Squid deployed on millions of servers worldwide, this decades-old vulnerability represents a significant security risk for enterprises, ISPs, and content delivery networks. Immediate patching is required for all affected versions.

Introduction

In a discovery that underscores how long-dormant vulnerabilities can lurk in widely-deployed software, security researchers at Mythos Labs have uncovered a critical memory leak in Squid proxy server that has remained undetected since the Clinton administration. Named “Squidbleed” in reference to the infamous Heartbleed vulnerability, this flaw affects virtually every version of Squid released over the past three decades.

The vulnerability’s longevity is particularly alarming given Squid’s ubiquitous presence in enterprise networks, internet service providers, content delivery networks, and web acceleration platforms. As organizations continue their digital transformation initiatives, understanding and remediating this exposure becomes paramount to maintaining network security posture.

Background & Context

Squid is an open-source caching and forwarding HTTP web proxy that has served as critical internet infrastructure since its initial release in 1996. Derived from the earlier Harvest project, Squid supports HTTP, HTTPS, FTP, and other protocols, making it a versatile solution for bandwidth optimization, access control, and content filtering.

The software’s widespread adoption spans multiple use cases:

Enterprise Deployments: Organizations use Squid to reduce bandwidth consumption, improve web browsing performance, and enforce content policies.

ISP Infrastructure: Internet service providers deploy Squid for transparent caching and traffic optimization.

CDN Components: Content delivery networks integrate Squid into their edge caching strategies.

Security Appliances: Many commercial security products incorporate Squid as a core component.

The vulnerability was discovered during routine security research when Mythos Labs researchers noticed unusual memory disclosure patterns while testing HTTP request parsing mechanisms. Further investigation revealed that the flaw existed in legacy code inherited from the project’s earliest versions.

Technical Breakdown

CVE-2024-23638 is a heap buffer over-read vulnerability residing in Squid’s HTTP request processing logic. The flaw occurs when the proxy server handles malformed Gopher protocol requests, triggering unintended memory disclosure.

Root Cause Analysis

The vulnerability stems from insufficient bounds checking in the gopherToHTML function within the Gopher-to-HTTP gateway code. When processing specially crafted requests, Squid fails to properly validate buffer boundaries before reading memory contents, allowing data leakage beyond allocated buffer space.

Exploitation Mechanism

An attacker can exploit this vulnerability through the following attack vector:

GET gopher://target-server:70/[MALFORMED_PAYLOAD] HTTP/1.1
Host: vulnerable-squid-proxy.example.com

The malformed payload triggers the over-read condition, causing Squid to include sensitive memory contents in its response. The leaked data may contain:

  • Authentication credentials from cached requests
  • Session tokens and cookies
  • TLS/SSL private key material
  • Internal network configurations
  • Content from other users’ web sessions
  • Process memory containing sensitive business data

Attack Complexity

Exploitation requires no authentication and can be executed remotely with minimal complexity. The attacker needs only network access to the Squid proxy service, whether through direct exposure or via compromised internal access.

Affected Code Path

The vulnerable code path exists in the gopher.cc file, specifically where buffer operations occur without proper length validation:

// Simplified vulnerable code pattern
char buffer[BUFFER_SIZE];
int bytes_read = readGopherResponse(connection);
// Missing bounds check here
memcpy(output, buffer, bytes_read);

Impact & Risk Assessment

The severity of Squidbleed warrants a CVSS score of 8.6 (High), with the following impact dimensions:

Confidentiality Impact: HIGH – Sensitive information disclosure affecting multiple users and systems.

Integrity Impact: NONE – The vulnerability does not allow modification of data.

Availability Impact: LOW – Potential for denial-of-service through resource exhaustion.

Real-World Exposure

Shodan and Censys scans indicate approximately 2.1 million publicly accessible Squid instances, though this number dramatically underestimates total deployment when including internal enterprise installations and transparent proxy configurations.

Threat Scenarios

Several attack scenarios present immediate risks:

Corporate Espionage: Attackers could harvest credentials and session tokens to gain unauthorized access to corporate resources.

Supply Chain Attacks: Compromised proxy servers in ISP networks could leak sensitive customer data at scale.

Lateral Movement: Initial access through memory disclosure could facilitate deeper network penetration.

Compliance Violations: Data leakage may trigger GDPR, HIPAA, PCI-DSS, and other regulatory violations.

Vendor Response

The Squid development team responded rapidly upon disclosure, releasing security patches within the coordinated disclosure timeline. Squid versions 6.6, 5.9, and 4.17 address the vulnerability through improved bounds checking and input validation.

The vendor’s security advisory (SQUID-2024:1) provides comprehensive remediation guidance and acknowledges the severity of the issue. Notably, the development team has initiated a broader code audit to identify similar patterns in legacy components.

Support for older Squid versions (3.x and earlier) has been discontinued, leaving organizations running legacy installations without official patches and requiring immediate migration planning.

Mitigations & Workarounds

Organizations unable to immediately patch should implement the following compensating controls:

Disable Gopher Protocol Support

Modify squid.conf to block Gopher requests:

acl gopher_requests proto gopher
http_access deny gopher_requests

Network Segmentation

Restrict proxy access to trusted networks only:

acl internal_networks src 10.0.0.0/8 192.168.0.0/16
http_access allow internal_networks
http_access deny all

Web Application Firewall Rules

Deploy WAF signatures to detect and block exploitation attempts targeting the Gopher protocol handler.

Immediate Upgrade Path

For supported versions, apply patches immediately:

# Debian/Ubuntu
sudo apt update
sudo apt install squid

# RHEL/CentOS
sudo yum update squid

# From source
wget http://www.squid-cache.org/Versions/v6/squid-6.6.tar.gz
tar xzf squid-6.6.tar.gz
cd squid-6.6
./configure && make && sudo make install

Detection & Monitoring

Security teams should implement comprehensive detection strategies to identify potential exploitation attempts.

Log Analysis

Monitor Squid access logs for suspicious Gopher protocol requests:

grep -i "gopher://" /var/log/squid/access.log

IDS/IPS Signatures

Deploy network detection rules:

alert tcp any any -> any 3128 (msg:"Potential Squidbleed Exploit Attempt"; 
content:"gopher://"; nocase; sid:1000001; rev:1;)

Memory Monitoring

Track unusual memory consumption patterns that may indicate active exploitation or reconnaissance activities.

Threat Hunting Queries

SIEM queries to identify historical compromise indicators:

index=proxy sourcetype=squid_access
| search uri="gopher://*"
| stats count by src_ip, uri
| where count > 5

Best Practices

Organizations should adopt comprehensive security practices beyond immediate patching:

Vulnerability Management

Establish systematic scanning schedules for infrastructure components, particularly legacy systems that may harbor undiscovered vulnerabilities.

Defense in Depth

Layer security controls including network segmentation, least privilege access, and protocol filtering to minimize exploitation opportunities.

Legacy Code Assessment

Conduct security reviews of inherited code modules, especially those implementing deprecated protocols or features.

Incident Response Planning

Prepare response procedures for potential data exposure incidents, including forensic collection, notification requirements, and containment strategies.

Configuration Hardening

Disable unnecessary protocols and features in Squid deployments:

# Minimal secure configuration
http_port 3128
acl Safe_ports port 80 443
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

Key Takeaways

  • Squidbleed affects Squid proxy versions spanning three decades, representing a critical supply chain risk for internet infrastructure
  • The vulnerability allows unauthenticated remote attackers to leak sensitive memory contents with low exploitation complexity
  • Approximately 2.1 million publicly accessible instances exist, with countless additional internal deployments at risk
  • Immediate patching to Squid 6.6, 5.9, or 4.17 is required; legacy versions require migration to supported releases
  • Organizations unable to patch immediately should disable Gopher protocol support and implement network-based compensating controls
  • This discovery highlights the importance of security audits for legacy code modules, particularly in widely-deployed infrastructure software

References

  • CVE-2024-23638 – NVD Entry
  • Squid Security Advisory SQUID-2024:1
  • Mythos Labs: Squidbleed Technical Analysis
  • Squid Project Official Downloads: http://www.squid-cache.org/
  • CISA Known Exploited Vulnerabilities Catalog
  • OWASP Proxy Server Security Guidelines

Stay updated at https://cydhaal.com — Your Daily Dose of Cyber Intelligence.
📧 Subscribe to our newsletter at https://cydhaal.com/newsletter/


Leave a Reply

Your email address will not be published. Required fields are marked *

📢 Join Telegram