Skip to content

SQUID-2023:1 Request/Response smuggling in HTTP/1.1 and ICAP

Critical
yadij published GHSA-j83v-w3p4-5cqh Oct 21, 2023

Package

squid

Affected versions

2.6-6.3

Patched versions

6.4

Description

Due to chunked decoder lenience Squid is vulnerable to
Request/Response smuggling attacks when parsing HTTP/1.1
and ICAP messages.


Severity:

This problem allows a remote attacker to perform
Request/Response smuggling past firewall and frontend security
systems when the upstream server interprets the chunked
encoding syntax differently from Squid.

This attack is limited to the HTTP/1.1 and ICAP protocols which
support receiving Transfer-Encoding:chunked.

CVSS Score of 9.3
https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N&version=3.1


Updated Packages:

This bug is fixed by Squid version 6.4.

In addition, patches addressing this problem for the stable
releases can be found in our patch archives:

Squid 5:

http://www.squid-cache.org/Versions/v5/SQUID-2023_1.patch

Squid 6:

http://www.squid-cache.org/Versions/v6/SQUID-2023_1.patch

If you are using a prepackaged version of Squid then please refer
to the package vendor for availability information on updated
packages.


Determining if your version is vulnerable:

Squid older than 5.1 have not been tested and should be
assumed to be vulnerable.

All Squid-5.x up to and including 5.9 are vulnerable.

All Squid-6.x up to and including 6.3 are vulnerable.


Workaround:

  • ICAP issues can be reduced by ensuring only trusted ICAP
    services are used, with TLS encrypted connections
    (ICAPS extension).

  • There is no workaround for the HTTP Request Smuggling issue.


Contact details for the Squid project:

For installation / upgrade support on binary packaged versions
of Squid: Your first point of contact should be your binary
package vendor.

If you install and build Squid from the original Squid sources
then the [email protected] mailing list is your
primary support point. For subscription details see
http://www.squid-cache.org/Support/mailing-lists.html.

For reporting of non-security bugs in the latest STABLE release
the squid bugzilla database should be used
https://bugs.squid-cache.org/.

For reporting of security sensitive bugs send an email to the
[email protected] mailing list. It's a closed
list (though anyone can post) and security related bug reports
are treated in confidence until the impact has been established.


Credits:

This vulnerability was discovered by Keran Mu and Jianjun Chen,
from Tsinghua University and Zhongguancun Laboratory.

Fixed by Amos Jeffries of Treehouse Networks Ltd.


Revision history:

2023-09-01 04:34:00 UTC Initial Report
2023-10-01 08:43:00 UTC Patch Available


END

Severity

Critical

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Changed
Confidentiality
High
Integrity
Low
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N

CVE ID

CVE-2023-46846

Weaknesses

Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')

The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination. Learn more on MITRE.