An issue was discovered in Squid through 4.7 and 5.
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Partial Red Hat: 1 fixed, 3 without a fix
Attack profile from CVSS 3.1 · NVD. Fix status from CNA and Red Hat.
Summary
An issue was discovered in Squid through 4.7 and 5. When receiving a request, Squid checks its cache to see if it can serve up a response. It does this by making a MD5 hash of the absolute URL of the request. If found, it servers the request. The absolute URL can include the decoded UserInfo (username and password) for certain protocols. This decoded info is prepended to the domain. This allows an attacker to provide a username that has special characters to delimit the domain, and treat the rest of the URL as a path or query string. An attacker could first make a request to their domain using an encoded username, then when a request for the target domain comes in that decodes to the exact URL, it will serve the attacker's HTML instead of the real HTML. On Squid servers that also act as reverse proxies, this allows an attacker to gain access to features that only reverse proxies can use, such as ESI.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | — | all versions | — | No fix listed | CNA |
- — Vendor— Affected all versions Fixed in — No fix listed CNA
CPE configurations NVD · 5
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:squid-cache:squid:*:*:*:*:*:*:*:* | up to 4.7 | Vulnerable | squid-cache |
| cpe:2.3:o:canonical:ubuntu_linux:16.04:*:*:*:lts:*:*:* | 16.04 | Vulnerable | Canonical |
| cpe:2.3:o:canonical:ubuntu_linux:18.04:*:*:*:lts:*:*:* | 18.04 | Vulnerable | Canonical |
| cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:* | 9.0 | Vulnerable | Debian |
| cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* | 10.0 | Vulnerable | Debian |
- cpe:2.3:a:squid-cache:squid:*:*:*:*:*:*:*:* Versions up to 4.7 Vulnerable ·squid-cache
- cpe:2.3:o:canonical:ubuntu_linux:16.04:*:*:*:lts:*:*:* Versions 16.04 Vulnerable ·Canonical
- cpe:2.3:o:canonical:ubuntu_linux:18.04:*:*:*:lts:*:*:* Versions 18.04 Vulnerable ·Canonical
- cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:* Versions 9.0 Vulnerable ·Debian
- cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* Versions 10.0 Vulnerable ·Debian
Remediation
Red Hat 1 advisory
- RHSA-2020:4743 Released 2020-11-04 · Red Hat rating Moderatesquid:4 security, bug fix, and enhancement update
- Red Hat Enterprise Linux AppStream (v. 8) libecap-1.0.1-2.module+el8.1.0+4044+36416a77.aarch64::squid:4, libecap-1.0.1-2.module+el8.1.0+4044+36416a77.ppc64le::squid:4, libecap-1.0.1-2.module+el8.1.0+4044+36416a77.s390x::squid:4 +11
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 5 | Affected | No fix planned: Out of support scope |
| Red Hat Enterprise Linux 6 | Affected | No fix planned: Out of support scope |
| Red Hat Enterprise Linux 7 | Affected | No fix planned: Will not fix |
| Red Hat Enterprise Linux AppStream (v. 8) | Fixed | RHSA-2020:4743 |
Timeline
- 2026-10-02 Threatist record created from CVE-2019-12520
- 2026-10-03 Alias added: GHSA-gx26-q49r-m7g8
References
Advisory 7
- http://www.squid-cache.org/Versions/v4/
- http://www.squid-cache.org/Versions/v4/changesets/
- https://gitlab.com/jeriko.one/security/-/blob/master/squid/CVEs/CVE-2019-12520.txt
- DSA-4682
- [debian-lts-announce] 20200710 [SECURITY] [DLA 2278-1] squid3 security update
- USN-4446-1
- https://security.netapp.com/advisory/ntap-20210205-0006/
Sources
- CVE-2019-12520 · CVE Program
- CVE-2019-12520 · NVD
- FIRST EPSS
- GHSA-gx26-q49r-m7g8 · GitHub Advisory Database · CC BY 4.0
- CVE-2019-12520 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences