CVE-2021-23336

CVE-2021-23336 is a medium-severity vulnerability in Python with a CVSS 3.x base score of 5.9. Its EPSS exploit-prediction score of 36% places it in the 98th percentile, indicating an elevated likelihood of exploitation. The underlying weakness is classified as CWE-444.

Key facts

Description

The package python/cpython from 0 and before 3.6.13, from 3.7.0 and before 3.7.10, from 3.8.0 and before 3.8.8, from 3.9.0 and before 3.9.2 are vulnerable to Web Cache Poisoning via urllib.parse.parse_qsl and urllib.parse.parse_qs 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.

Frequently asked questions

What is CVE-2021-23336?
The package python/cpython from 0 and before 3.6.13, from 3.7.0 and before 3.7.10, from 3.8.0 and before 3.8.8, from 3.9.0 and before 3.9.2 are vulnerable to Web Cache Poisoning via urllib.parse.parse_qsl and urllib.parse.parse_qs 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.
How severe is CVE-2021-23336?
CVE-2021-23336 has a CVSS 3.x base score of 5.9, rated medium severity. It is exploitable over network with high attack complexity, requires no privileges and user interaction. Impact on confidentiality is none, integrity low, and availability high.
Is CVE-2021-23336 being actively exploited?
It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 36% (98th percentile), an estimate of the probability of exploitation in the next 30 days.
What products are affected by CVE-2021-23336?
CVE-2021-23336 primarily affects Python. In total, 14 product configurations (CPEs) are listed as vulnerable; see the affected-products list for the exact versions.
How do I fix CVE-2021-23336?
Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround.
When was CVE-2021-23336 published?
CVE-2021-23336 was published on 2021-02-15 and last updated on 2026-06-17.

References

Affected products (14)

More vulnerabilities in Python

All CVEs affecting Python →

Other CWE-444 (HTTP Request/Response Smuggling) vulnerabilities

Browse all CWE-444 (HTTP Request/Response Smuggling) vulnerabilities →

Threat intelligence

Threat-intel indicators referencing this CVE: