CVE-2020-28473 json
Web Cache Poisoning
published 2021-01-18 5 y ago modified 2026-06-17 4 mo ago also GHSA-qhx9-7hx7-cp4r , PYSEC-2021-129 , EUVD-2021-0038
- cvss
- 6.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.8%
- EPSS 1.8% chance of exploitation in 30 days, percentile 78%
- public exploits
- 0
- none known
Summary
The package bottle from 0 and before 0.12.19 are vulnerable to Web Cache Poisoning by using a vector called parameter cloaking. When the attacker can separate query parameters using a semicolon (;), they can cause a difference in the interpretation of the request between the proxy (running with default configuration) and the server. This can result in malicious requests being cached as completely safe ones, as the proxy would usually not see the semicolon as a separator, and therefore would not include it in a cache key of an unkeyed parameter.
Patch / fix
- pypi bottle 0.12.19
- n/a bottle 0.12.19
- python-bottle Debian 14, Debian 13, Debian 12 0.12.19-1
debian advisories DEBIAN-CVE-2020-28473
- python-bottle Ubuntu 18.04 LTS 0.12.13-1ubuntu0.1
- python-bottle Ubuntu 20.04 LTS 0.12.15-2.1ubuntu0.1
- python-bottle Ubuntu Pro 14.04 LTS 0.12.0-1ubuntu0.1~esm2
ubuntu advisories UBUNTU-CVE-2020-28473
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- python-bottle SLE Module for Python 2 15 SP2, SLE Module for Desktop Applications 15 SP2 0.12.13-3.3.1
suse advisories SUSE-SU-2021:0483-1
- python-bottle openSUSE Leap 15.2 0.12.13-lp152.4.3.1
opensuse advisories openSUSE-SU-2021:0302-1
- python-bottle Arch Linux 0.12.19-1
arch linux advisories AVG-1485
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2020-28473 updated cvss 6.8
python-bottle: Web Cache Poisoning by using a vector called parameter cloaking may lead to integrity and availability compromise
-
Red Hat All currently supported Red Hat productsnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
1.79% chance of exploitation in the next 30 days, higher than 78% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- snyk.io https://snyk.io/vuln/SNYK-PYTHON-BOTTLE-1017108 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H/E:P/RL:O/RC:C |
| CNA | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H |
| NVD | 2.0 | 5.8 | AV:N/AC:M/Au:N/C:P/I:P/A:N |
| GitHub | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | bottle | <0.12.19 |
0.12.19 |
Affected products
- n/a bottle
Classification
- Weakness
-
- CWE-444 Inconsistent Interpretation of HTTP Requests
References
-
github.com
/bottlepy/bottle/commit/57a2f22e0c1d2b328c4f54bf75741d74f47f1a6b
web
-
snyk.io
/vuln/SNYK-PYTHON-BOTTLE-1017108
web, exploit, third-party-advisory, advisory
-
github.com
/bottlepy/bottle
package, product, third-party-advisory, web
-
snyk.io
/blog/cache-poisoning-in-popular-open-source-packages/
third-party-advisory, article
-
lists.debian.org
/debian-lts-announce/2021/01/msg00019.html
mailing-list, web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2020-28473
advisory
-
github.com
/advisories/GHSA-qhx9-7hx7-cp4r
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/bottle/PYSEC-2021-129.yaml
web
-
snyk.io
/blog/cache-poisoning-in-popular-open-source-packages
web
Sources
- CVE List CVE-2020-28473
- GitHub Advisory GHSA-qhx9-7hx7-cp4r
- NVD CVE-2020-28473
- OSV PYSEC-2021-129
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.