CVE Catalog

CVE-2021-23336

MediumCVSS 5.9
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Very high risk
40.74%

99th percentile - higher than 99% of all known CVEs

Summary

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.

Risk Assessment

Malicious requests can be cached as completely safe ones, potentially leading to delivery of malicious content to users or unauthorized actions.

Recommendation

Update Python to a version containing the fix (3.6.13, 3.7.10, 3.8.8, 3.9.2 or later) and verify proxy server configuration regarding semicolon handling in query parameters.

Other vulnerabilities in Python

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS