Cloudanix VulnDB

CVE-2016-2569

High · 7.5

CVSS

7.5

EPSS

31.2%

Published

Feb 27, 2016

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in the proxy software lets a malicious website send specially crafted web responses that crash the proxy, interrupting service for everyone using it until it is restarted or updated.

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

What it actually does

Improper handling of string append operations in Squid's internal String objects allows a remote HTTP server to supply an excessively long Vary header that triggers an assertion failure and immediate daemon termination.

Why it matters to the business

An attacker-controlled origin server can repeatedly crash the proxy, causing widespread outage for any clients or services that rely on it for web traffic and forcing manual restarts until the instance is updated.

How an attack unfolds

An attacker positions a malicious or compromised web server that returns HTTP responses containing an extremely long Vary header. When Squid forwards a request to that server and processes the response, the malformed header triggers the string-append flaw, causing the daemon to assert and exit.

How to fix it

Upgrade Squid 3.x installations to version 3.5.15 or later and Squid 4.x installations to version 4.0.7 or later. If immediate upgrade is not possible, restrict forwarding of the Vary header or apply vendor-supplied patches that correct the string-append logic.

How to confirm the fix worked

Confirm the running Squid binary reports version 3.5.15 (or newer 3.x) or 4.0.7 (or newer 4.x). Reproduce a request to a test origin that returns a Vary header exceeding prior limits and verify the daemon no longer exits with an assertion failure.

Typical attack path

  1. Attacker controls or compromises an origin server reachable by the Squid instance
  2. Origin returns crafted HTTP response with oversized Vary header on requests proxied through Squid
  3. Squid attempts to append the header value to an internal String object
  4. Assertion fails and the Squid daemon terminates, denying service to clients

How to detect it

Search proxy and system logs for repeated Squid daemon restarts or assertion-failure messages around the time of suspected incidents; correlate with upstream HTTP responses containing unusually large Vary headers.

What your security team should do

  • Prioritize upgrade of all Squid instances to the fixed releases within the next maintenance window
  • Add version checks to configuration-management and container-image scanning pipelines
  • Monitor proxy availability metrics and set alerts on unexpected daemon restarts
  • Review and tighten origin-server trust boundaries where possible

The record

Squid 3.x before 3.5.15 and 4.x before 4.0.7 does not properly append data to String objects, which allows remote servers to cause a denial of service (assertion failure and daemon exit) via a long string, as demonstrated by a crafted HTTP Vary header.

Affected packages

Ecosystem Package Introduced Fixed
Mageia:5 squid 0 3.4.13-1.4.mga5
Red Hat:enterprise_linux:7::server squid 0 7:3.5.20-2.el7
Red Hat:enterprise_linux:7::server squid-debuginfo 0 7:3.5.20-2.el7
Red Hat:enterprise_linux:7::server squid-migration-script 0 7:3.5.20-2.el7
Red Hat:enterprise_linux:7::server squid-sysvinit 0 7:3.5.20-2.el7
Red Hat:enterprise_linux:7::workstation squid 0 7:3.5.20-2.el7
Red Hat:enterprise_linux:7::workstation squid-debuginfo 0 7:3.5.20-2.el7
Red Hat:enterprise_linux:7::workstation squid-migration-script 0 7:3.5.20-2.el7
Red Hat:enterprise_linux:7::workstation squid-sysvinit 0 7:3.5.20-2.el7
SUSE:Linux Enterprise Server 11 SP4 squid3 0 3.1.23-8.16.30.1
SUSE:Linux Enterprise Server 12 SP1 squid 0 3.3.14-20.2
SUSE:Linux Enterprise Server for SAP Applications 11 SP4 squid3 0 3.1.23-8.16.30.1
SUSE:Linux Enterprise Server for SAP Applications 12 SP1 squid 0 3.3.14-20.2
Ubuntu:14.04:LTS squid3 0 3.3.8-1ubuntu6.11
Ubuntu:16.04:LTS squid3 0 3.5.12-1ubuntu7.5
openSUSE:Tumbleweed squid 0 4.16-1.5

Related vulnerabilities