Squidbleed — Squid Proxy FTP Gateway Out-of-Bounds Heap Read (CVE-2026-47729)
by Calif.io (discovery/writeup); 0xBlackash (PoC) · 2026-07-01
- Severity
- Medium
- CVE
- CVE-2026-47729
- Category
- network
- Affected product
- Squid Proxy — FTP gateway / directory-listing parser
- Affected versions
- Prior to Squid 7.7
- Disclosed
- 2026-07-01
- Patch status
- patched
Tags
References
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-01 |
| Last Updated | 2026-06 |
| Author / Researcher | Calif.io (discovery/writeup); 0xBlackash (PoC) |
| CVE / Advisory | CVE-2026-47729 |
| Category | network |
| Severity | Medium |
| CVSS Score | Unrated (memory disclosure) |
| Status | PoC |
| Tags | memory-disclosure, information-disclosure, Squid, proxy, FTP, heap-overflow, oob-read, credential-theft, legacy |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | Squid Proxy — FTP gateway / directory-listing parser |
| Versions Affected | Prior to Squid 7.7 |
| Language / Platform | C++ (target: FtpGateway.cc); Python (PoC) |
| Authentication Required | No |
| Network Access Required | Yes (attacker controls or compromises an FTP server that victims proxy through, or MITMs FTP responses) |
Summary
CVE-2026-47729, dubbed “Squidbleed,” is an out-of-bounds heap read in Squid Proxy’s FTP gateway and FTP directory-listing parser. The bug stems from legacy FTP parsing logic (originally written in 1997 for NetWare-style listings) in FtpGateway.cc, where whitespace-skipping code calls strchr() on attacker-influenced input without first checking that the parser hasn’t already reached the terminating NUL byte. A crafted or truncated FTP directory listing from a malicious/compromised FTP server can cause Squid to read past the end of the intended heap buffer and return adjacent memory contents — potentially including fragments of unrelated prior transactions such as cleartext HTTP request data (Basic-Auth credentials, Bearer tokens) — to the requesting client as part of the rendered FTP response. Fixed in Squid 7.7.
Vulnerability Details
Root Cause
FtpGateway.cc’s whitespace-skip logic in the FTP directory-listing parser uses strchr() without a bounds/NUL check, allowing a heap over-read when processing a truncated or malformed listing line from the FTP server.
Attack Vector
- Attacker stands up (or compromises/MITMs) an FTP server that victim Squid proxy users connect through.
- The FTP server sends crafted, truncated directory-listing lines designed to trigger the whitespace-skip over-read.
- Squid reads past the intended buffer boundary and includes leaked adjacent heap memory in the response rendered back to the proxy client.
- Attacker harvests leaked memory fragments — including credentials from unrelated concurrent/prior proxy transactions — from repeated polling.
Impact
Information disclosure: leakage of adjacent heap memory via the Squid proxy response, potentially exposing credentials (Basic-Auth, Bearer tokens) belonging to other users/transactions sharing the same proxy process.
Environment / Lab Setup
Target: Squid Proxy < 7.7 configured with FTP gateway support
Attacker: Python 3 (malicious FTP server + HTTP poller)
Proof of Concept
PoC Script
See
CVE-2026-47729.pyin this folder.
| |
Spins up a malicious FTP server that sends truncated directory listings to trigger the heap over-read, then multi-threads HTTP requests through the target Squid proxy to an FTP URL, harvesting and live-parsing leaked heap memory for Basic-Auth/Bearer credentials.
Detection & Indicators of Compromise
Signs of compromise:
- Repeated proxy connections to an unfamiliar or newly-registered FTP host
- Unusual polling patterns (high-frequency identical requests) through the proxy
- Credential reuse/compromise correlating with proxy usage around the same timeframe
Remediation
| Action | Detail |
|---|---|
| Primary fix | Upgrade to Squid 7.7 or later |
| Mitigation | Disable FTP gateway support if not required |
| Verify | Squid Security Advisory GHSA-8c37-pxjq-qwrg |
References
- Squidbleed (CVE-2026-47729) — Calif.io writeup
- Squid Security Advisory GHSA-8c37-pxjq-qwrg
- Source repository (0xBlackash)
Notes
Auto-ingested from https://github.com/0xBlackash/CVE-2026-47729 on 2026-07-01.
| |