Cloudanix VulnDB

CVE-2024-25111

High · 8.6

CVSS

8.6

EPSS

65.3%

Published

Mar 6, 2024

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Attend

A remote attacker can crash vulnerable Squid proxy servers with a specially crafted web request, disrupting web access or services that depend on them.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Network Service
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Squid versions starting with 3.5.27 and before 6.8 contain an uncontrolled recursion flaw in the HTTP chunked transfer decoder. A remote, unauthenticated client can send a specially crafted chunked-encoded HTTP message through or to the proxy that drives the decoder into excessive recursive processing, exhausting stack or process resources and causing the Squid worker/process to crash or become unavailable. The impact is availability only: it does not directly provide code execution, data theft, or privilege escalation, but it can disrupt proxying, caching, and dependent outbound or inbound web traffic. The issue is network-exploitable, low-complexity, requires no credentials or user interaction, and affects deployments that accept attacker-controlled HTTP traffic using chunked transfer encoding.

Why it matters to the business

Successful exploitation can interrupt web proxy service, blocking users, applications, or downstream services that rely on Squid for internet access, reverse proxying, caching, filtering, or egress control. In organizations where Squid is part of a critical traffic path, a crash can cause broad browsing failures, application outages, monitoring noise, and failover/load-balancer instability. Although it is not listed in CISA KEV and no mature public exploit is indicated in the supplied data, the high CVSS score and elevated EPSS probability mean exposed or internet-reachable Squid instances should be prioritized because exploitation requires only a crafted HTTP request and can be repeated to sustain denial of service.

How an attack unfolds

An attacker first identifies a Squid proxy or service path that will parse HTTP requests or responses using chunked transfer encoding. The attacker then sends a malformed or deeply structured chunked-encoded HTTP message designed to trigger uncontrolled recursion in Squid's chunk decoder. Because the flaw is reachable before authentication in affected configurations that process such traffic, the attacker does not need valid credentials or user interaction. When the vulnerable parser processes the crafted message, recursion consumes process resources or stack depth until Squid crashes, aborts, or stops handling traffic. The attacker can repeat the request, potentially from one or many sources, to keep the proxy unavailable even if a supervisor or service manager restarts it.

How to fix it

Upgrade Squid to version 6.8 or later. For source-based deployments, apply the upstream fix identified as commit 8de6aae86ad83e1684bc0647eb6fd406e34c3176 or the appropriate stable-release patch from the Squid patch archives. There is no vendor-supported workaround for the underlying parser bug. Where immediate patching is not possible, reduce exposure by restricting access to Squid listener ports to trusted networks, placing the proxy behind access controls or load balancers that can drop malformed HTTP traffic, disabling unnecessary public reachability, rate-limiting suspicious clients, and ensuring service supervision/failover is configured; these measures reduce risk but should not be treated as a fix.

How to confirm the fix worked

Confirm the installed Squid version is 6.8 or later, or verify that the upstream patch/commit 8de6aae86ad83e1684bc0647eb6fd406e34c3176 is present in the deployed build. Validate package status using the operating system package manager, container image inventory, or source build metadata, and compare against all running instances rather than only repository versions. Restart Squid after patching and verify the running binary reports the expected version with commands such as `squid -v` or equivalent service inventory tooling. Confirm that externally reachable proxy ports are limited to intended networks. Review recent service uptime and crash logs to ensure no continued instability after remediation.

Typical attack path

  1. Discover an exposed Squid proxy, reverse proxy, or network path where Squid processes HTTP traffic.
  2. Confirm the service accepts HTTP messages that use Transfer-Encoding: chunked.
  3. Send a crafted chunked-encoded HTTP message that triggers excessive recursive processing in Squid's HTTP chunked decoder.
  4. Cause the Squid process or worker to crash, abort, or become unresponsive.
  5. Repeat the crafted requests to sustain service disruption, especially where automatic restart restores the process after each crash.

How to detect it

To assess possible prior exploitation, correlate Squid service crashes or restarts with inbound or proxied HTTP requests using chunked transfer encoding. Review Squid `cache.log` for fatal errors, assertions, segmentation faults, abnormal termination messages, worker exits, or repeated service startup banners. Review Squid `access.log`, reverse proxy logs, load balancer logs, packet captures, and WAF logs for bursts of HTTP requests containing `Transfer-Encoding: chunked`, malformed chunk sizes, unusual chunk extensions, incomplete chunk terminators, or connections that terminate immediately before a crash. Review host telemetry such as systemd journal, syslog, container runtime logs, kernel logs, and core dump records for `squid` crashes, stack exhaustion, segmentation violations, or rapid restart loops. Because the vulnerability causes denial of service rather than persistent compromise, durable host IOCs may be limited; the strongest signal is timing correlation between crafted chunked HTTP traffic and Squid process failure.

  • Transfer-Encoding: chunked
  • transfer-encoding: chunked
  • /var/log/squid/cache.log
  • /var/log/squid/access.log
  • /var/spool/squid
  • FATAL: Received Segment Violation
  • Squid Cache (Version
  • squid.service: Main process exited
  • squid.service: Failed with result
  • segfault at
  • traps: squid
  • core dumped
  • assertion failed
  • kid1|
  • kid2|

What your security team should do

  • Prioritize patching internet-facing, partner-facing, or untrusted-client-facing Squid deployments to version 6.8 or a vendor backport containing commit 8de6aae86ad83e1684bc0647eb6fd406e34c3176.
  • Inventory all Squid instances, including containers, appliances, reverse proxy tiers, egress proxies, development environments, and embedded downstream packages.
  • Restrict Squid listener access to trusted networks and authenticated paths wherever operationally possible, especially until patching is complete.
  • Add monitoring for Squid process crashes, rapid restarts, abnormal 5xx/connection failure spikes, and bursts of malformed chunked HTTP traffic.
  • Review historical Squid access logs, cache logs, systemd/syslog entries, and load balancer/WAF logs for signs of unexplained crashes correlated with chunked transfer requests.
  • Do not rely on the absence of CISA KEV status as a reason to defer remediation; the vulnerability is remotely reachable, low-complexity, and has a high availability impact.

The record

Squid is a web proxy cache. Starting in version 3.5.27 and prior to version 6.8, Squid may be vulnerable to a Denial of Service attack against HTTP Chunked decoder due to an uncontrolled recursion bug. This problem allows a remote attacker to cause Denial of Service when sending a crafted, chunked, encoded HTTP Message. This bug is fixed in Squid version 6.8. In addition, patches addressing this problem for the stable releases can be found in Squid's patch archives. There is no workaround for this issue.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 libecap 0 1.0.1-2.module_el8.6.0+2741+01592ae8
AlmaLinux:8 libecap 0 1.0.1-2.module_el8.6.0+3048+383bc947
AlmaLinux:8 libecap-devel 0 1.0.1-2.module_el8.6.0+2741+01592ae8
AlmaLinux:8 libecap-devel 0 1.0.1-2.module_el8.6.0+3048+383bc947
AlmaLinux:8 squid 0 7:4.15-7.module_el8.9.0+3749+dbf371ed.10
AlmaLinux:9 squid 0 7:5.5-6.el9_3.8
Debian:11 squid 0 No fix
Debian:11 squid 0 4.13-10+deb11u4
Debian:12 squid 0 5.7-2+deb12u1
Debian:13 squid 0 6.8-1
Mageia:9 squid 0 5.9-1.2.mga9
Red Hat:enterprise_linux:8::appstream libecap 0 0:1.0.1-2.module+el8.9.0+19703+a1da7223
Red Hat:enterprise_linux:8::appstream libecap-debuginfo 0 0:1.0.1-2.module+el8.9.0+19703+a1da7223
Red Hat:enterprise_linux:8::appstream libecap-debugsource 0 0:1.0.1-2.module+el8.9.0+19703+a1da7223
Red Hat:enterprise_linux:8::appstream libecap-devel 0 0:1.0.1-2.module+el8.9.0+19703+a1da7223
Red Hat:enterprise_linux:8::appstream squid 0 7:4.15-7.module+el8.9.0+21530+59b09a5b.10
Red Hat:enterprise_linux:8::appstream squid-debuginfo 0 7:4.15-7.module+el8.9.0+21530+59b09a5b.10
Red Hat:enterprise_linux:8::appstream squid-debugsource 0 7:4.15-7.module+el8.9.0+21530+59b09a5b.10
Red Hat:enterprise_linux:9::appstream squid 0 7:5.5-6.el9_3.8
Red Hat:enterprise_linux:9::appstream squid-debuginfo 0 7:5.5-6.el9_3.8
Red Hat:enterprise_linux:9::appstream squid-debugsource 0 7:5.5-6.el9_3.8
Red Hat:rhel_aus:8.2::appstream libecap 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_aus:8.2::appstream libecap-debuginfo 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_aus:8.2::appstream libecap-debugsource 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_aus:8.2::appstream libecap-devel 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_aus:8.2::appstream squid 0 7:4.4-8.module+el8.2.0+21527+aa63d5ff.9
Red Hat:rhel_aus:8.2::appstream squid-debuginfo 0 7:4.4-8.module+el8.2.0+21527+aa63d5ff.9
Red Hat:rhel_aus:8.2::appstream squid-debugsource 0 7:4.4-8.module+el8.2.0+21527+aa63d5ff.9
Red Hat:rhel_aus:8.4::appstream libecap 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_aus:8.4::appstream libecap-debuginfo 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_aus:8.4::appstream libecap-debugsource 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_aus:8.4::appstream libecap-devel 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_aus:8.4::appstream squid 0 7:4.11-4.module+el8.4.0+21523+3cc98f8b.8
Red Hat:rhel_aus:8.4::appstream squid-debuginfo 0 7:4.11-4.module+el8.4.0+21523+3cc98f8b.8
Red Hat:rhel_aus:8.4::appstream squid-debugsource 0 7:4.11-4.module+el8.4.0+21523+3cc98f8b.8
Red Hat:rhel_e4s:8.2::appstream libecap 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_e4s:8.2::appstream libecap-debuginfo 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_e4s:8.2::appstream libecap-debugsource 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_e4s:8.2::appstream libecap-devel 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_e4s:8.2::appstream squid 0 7:4.4-8.module+el8.2.0+21527+aa63d5ff.9
Red Hat:rhel_e4s:8.2::appstream squid-debuginfo 0 7:4.4-8.module+el8.2.0+21527+aa63d5ff.9
Red Hat:rhel_e4s:8.2::appstream squid-debugsource 0 7:4.4-8.module+el8.2.0+21527+aa63d5ff.9
Red Hat:rhel_e4s:8.4::appstream libecap 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_e4s:8.4::appstream libecap-debuginfo 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_e4s:8.4::appstream libecap-debugsource 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_e4s:8.4::appstream libecap-devel 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_e4s:8.4::appstream squid 0 7:4.11-4.module+el8.4.0+21523+3cc98f8b.8
Red Hat:rhel_e4s:8.4::appstream squid-debuginfo 0 7:4.11-4.module+el8.4.0+21523+3cc98f8b.8
Red Hat:rhel_e4s:8.4::appstream squid-debugsource 0 7:4.11-4.module+el8.4.0+21523+3cc98f8b.8
Red Hat:rhel_eus:8.6::appstream libecap 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_eus:8.6::appstream libecap-debuginfo 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_eus:8.6::appstream libecap-debugsource 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_eus:8.6::appstream libecap-devel 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_eus:8.6::appstream squid 0 7:4.15-3.module+el8.6.0+21519+58cab4c1.6
Red Hat:rhel_eus:8.6::appstream squid-debuginfo 0 7:4.15-3.module+el8.6.0+21519+58cab4c1.6
Red Hat:rhel_eus:8.6::appstream squid-debugsource 0 7:4.15-3.module+el8.6.0+21519+58cab4c1.6
Red Hat:rhel_eus:8.8::appstream libecap 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_eus:8.8::appstream libecap-debuginfo 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_eus:8.8::appstream libecap-debugsource 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_eus:8.8::appstream libecap-devel 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_eus:8.8::appstream squid 0 7:4.15-6.module+el8.8.0+21509+962c493b.6
Red Hat:rhel_eus:8.8::appstream squid-debuginfo 0 7:4.15-6.module+el8.8.0+21509+962c493b.6
Red Hat:rhel_eus:8.8::appstream squid-debugsource 0 7:4.15-6.module+el8.8.0+21509+962c493b.6
Red Hat:rhel_eus:9.0::appstream squid 0 7:5.2-1.el9_0.6
Red Hat:rhel_eus:9.0::appstream squid-debuginfo 0 7:5.2-1.el9_0.6
Red Hat:rhel_eus:9.0::appstream squid-debugsource 0 7:5.2-1.el9_0.6
Red Hat:rhel_eus:9.2::appstream squid 0 7:5.5-5.el9_2.6
Red Hat:rhel_eus:9.2::appstream squid-debuginfo 0 7:5.5-5.el9_2.6
Red Hat:rhel_eus:9.2::appstream squid-debugsource 0 7:5.5-5.el9_2.6
Red Hat:rhel_tus:8.2::appstream libecap 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_tus:8.2::appstream libecap-debuginfo 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_tus:8.2::appstream libecap-debugsource 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_tus:8.2::appstream libecap-devel 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_tus:8.2::appstream squid 0 7:4.4-8.module+el8.2.0+21527+aa63d5ff.9
Red Hat:rhel_tus:8.2::appstream squid-debuginfo 0 7:4.4-8.module+el8.2.0+21527+aa63d5ff.9
Red Hat:rhel_tus:8.2::appstream squid-debugsource 0 7:4.4-8.module+el8.2.0+21527+aa63d5ff.9
Red Hat:rhel_tus:8.4::appstream libecap 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_tus:8.4::appstream libecap-debuginfo 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_tus:8.4::appstream libecap-debugsource 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_tus:8.4::appstream libecap-devel 0 0:1.0.1-2.module+el8.1.0+4044+36416a77
Red Hat:rhel_tus:8.4::appstream squid 0 7:4.11-4.module+el8.4.0+21523+3cc98f8b.8
Red Hat:rhel_tus:8.4::appstream squid-debuginfo 0 7:4.11-4.module+el8.4.0+21523+3cc98f8b.8
Red Hat:rhel_tus:8.4::appstream squid-debugsource 0 7:4.11-4.module+el8.4.0+21523+3cc98f8b.8
SUSE:Enterprise Storage 7.1 squid 0 4.17-150000.5.52.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS squid 0 4.17-150000.5.52.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS squid 0 4.17-150000.5.52.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS squid 0 5.7-150400.3.26.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS squid 0 5.7-150400.3.26.1
SUSE:Linux Enterprise Module for Server Applications 15 SP5 squid 0 5.7-150400.3.26.1
SUSE:Linux Enterprise Server 12 SP5 squid 0 4.17-4.44.1
SUSE:Linux Enterprise Server 15 SP2-LTSS squid 0 4.17-150000.5.52.1
SUSE:Linux Enterprise Server 15 SP3-LTSS squid 0 4.17-150000.5.52.1
SUSE:Linux Enterprise Server 15 SP4-LTSS squid 0 5.7-150400.3.26.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP5 squid 0 4.17-4.44.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP2 squid 0 4.17-150000.5.52.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP3 squid 0 4.17-150000.5.52.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 squid 0 5.7-150400.3.26.1
SUSE:Manager Proxy 4.3 squid 0 5.7-150400.3.26.1
SUSE:Manager Server 4.3 squid 0 5.7-150400.3.26.1
Ubuntu:20.04:LTS squid 0 4.10-1ubuntu1.10
Ubuntu:22.04:LTS squid 0 5.7-0ubuntu0.22.04.4
Ubuntu:23.10 squid 0 6.1-2ubuntu1.3
Ubuntu:24.04:LTS squid 0 6.6-1ubuntu4
Ubuntu:Pro:16.04:LTS squid3 0 No fix
Ubuntu:Pro:18.04:LTS squid3 0 No fix
openSUSE:Leap 15.5 squid 0 5.7-150400.3.26.1
openSUSE:Tumbleweed squid 0 6.8-1.1

Related vulnerabilities