Supply Chain Attacks

Squid proxy memory corruption CVEs: a supply chain perspective

Squid's recurring memory-corruption CVEs in 2024 and 2025 are a reminder that transparent egress proxies sit on a critical path and rarely get the SBOM scrutiny their position deserves.

Hritik Sharma
Security Engineer
7 min read

Squid is one of those open source projects whose deployment density is far higher than its public profile suggests. Internet service providers, large enterprise egress fleets, container registries, software repositories, and a long tail of appliance vendors all run Squid in either a forward, reverse, or transparent configuration, and the project has been releasing security advisories at a steady clip through 2024 and 2025. CVE-2024-37894, CVE-2024-25617, CVE-2024-45802, and CVE-2025-21598, among others, describe a recurring pattern of memory corruption in HTTP header parsing, gopher and ftp gateway code, ESI processing, and HTTP/2 framing, with most of them producing at least denial of service and a subset producing remote code execution under realistic conditions.

The supply chain story here is not that Squid is unusually insecure for its age and complexity; the story is that Squid sits on a critical path in many architectures while being maintained by a small core team and treated by operators as plumbing they installed years ago and have not thought about since. Egress proxies see every outbound request, terminate TLS for inspection in some configurations, and hold credentials for upstream services; a compromised Squid is therefore not just a hop in the path but a vantage point for credential theft, traffic interception, and lateral movement.

What does the Squid CVE pattern look like across 2024 and 2025?

The 2024 advisories clustered around the gopher and ftp gateway code, the HTTP message parser, and the HTTP/2 implementation that was added in the 5.x line. The pattern is the kind of buffer handling and integer arithmetic mistake that surfaces when fuzzing finally hits a path that has not been heavily exercised, and several of the advisories trace to fixes that the maintainers had already made on the development branch but had not yet backported into the supported releases. The 2025 advisories continued the trend, with additional findings in HTTP/2 framing, in the helper protocol handling for authentication, and in cache management edge cases.

Mitigations the project has shipped include disabling the gopher and ftp gateway by default in current builds, hardening header parsing with stricter length and type checks, and improving the test corpus around HTTP/2. The patch path has been responsive but the support window is narrow because the core team is small; users on older Squid 4.x and 5.x branches have to make the leap to a current 6.x release to get continued security support, and that leap involves configuration migration that some operators put off. The result is a long tail of unpatched Squid instances on supportable but unsupported branches, which is the most dangerous patching cohort because operators believe they are safe.

Why does the transparent egress proxy position raise the stakes?

A transparent egress proxy intercepts outbound traffic without the client knowing it is there, which is the operational pattern for content filtering, malware scanning, and data loss prevention in regulated environments. The proxy holds the TLS termination certificate the enterprise installed on every endpoint, which means it can see the cleartext of every TLS connection that traverses it. A memory corruption RCE in that proxy hands an attacker a vantage point that is hard to overstate: every outbound HTTP request, every API token in an Authorization header, every cookie, every webhook payload, all flowing through a process the attacker now controls.

The exfiltration path is also nontrivial in this position because the proxy is, by construction, allowed to talk to the internet. An attacker who compromises Squid can send the harvested data wherever they want, blending into the normal egress traffic the proxy is supposed to inspect. The defenders' usual netflow signals do not apply because the proxy is the netflow source, and depending on the architecture the proxy may be the trust anchor for the corporate certificate authority that issues the TLS inspection certificate. The blast radius is therefore not just the proxy itself but the cryptographic posture of every endpoint that trusts the proxy's certificate authority.

Why is Squid hard to inventory at scale?

Most Squid deployments were installed years ago, often by a network team rather than the team that owns supply chain security, and the install method varies wildly. Some are distribution packages on long-lived hosts, some are vendor appliances with a Squid build the vendor patches on their own cadence, some are containerized in modern egress gateway products, and some are forks maintained by appliance vendors whose security cadence is opaque. The SBOM picture is patchy because the operators who run the network do not always pipe their inventory into the SBOM tooling the application security team uses, and the inventory team that has the package data does not always know which hosts are running Squid.

The appliance dimension is the trickiest. Several enterprise web gateway products embed Squid as the core proxy engine, and the appliance's branding obscures the underlying open source supply chain. Operators who run those appliances may not know they run Squid, and even if they do, the patch path is the vendor firmware release rather than upstream Squid. CVE coverage of those embedded forks is uneven; the vendor's release notes may or may not call out the upstream Squid CVE the patch addresses, and the inventory of which appliance firmware contains which Squid version is rarely public.

What habits reduce the risk going forward?

The first habit is to inventory egress proxies as named, version-tracked components, with the inventory covering both first-party deployments and vendor appliances. The SBOM for a vendor appliance is the right artifact to demand, and a vendor that cannot produce one for a critical-path component is a TPRM finding in itself. The second habit is to treat the proxy as a credentialed component with the same lifecycle discipline as a database, including periodic credential rotation for upstream services, network segmentation that limits the blast radius of a compromise, and monitoring of the proxy's outbound traffic patterns for anomalies that would indicate an attacker pivoting through.

The third habit is to reduce the proxy's feature footprint to the minimum the use case requires. Disabling the gopher and ftp gateway, disabling ESI if it is not in use, disabling helper protocols that the deployment does not require, all close attack surface that has historically been a source of CVEs. The fourth habit is to budget the migration cost from older Squid branches to a current supported branch into the operational plan, rather than letting the migration accrete until the unsupported branch is the only one in production.

How Safeguard Helps

Safeguard inventories Squid versions across container images, VM-based deployments, and SBOMs ingested from vendor appliance suppliers, so the question of which Squid CVE applies to which proxy can be answered against live data. Griffin AI correlates the version inventory with the 2024 and 2025 Squid CVE feed and ranks affected proxies by exposure profile, distinguishing transparent egress deployments where a compromise has wide blast radius from forward-proxy deployments with narrower scope. Policy gates can block deployment of container images that ship pre-current Squid builds, and the TPRM workflow surfaces vendors whose appliance firmware embeds unsupported Squid branches. The reachability analysis also identifies which Squid features are enabled in a given deployment, so a CVE in the gopher gateway code raises priority only on proxies where the gateway is actually compiled in and reachable.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.