PT-2021-3621 · Apache+10 · Apache Tomcat+10

Published

2021-02-13

·

Updated

2026-05-18

·

CVE-2021-23336

CVSS v3.1

5.9

Medium

VectorAV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:H
Name of the Vulnerable Software and Affected Versions python/cpython versions 0 through 3.6.13 python/cpython versions 3.7.0 through 3.7.10 python/cpython versions 3.8.0 through 3.8.8 python/cpython versions 3.9.0 through 3.9.2
Description The issue is related to Web Cache Poisoning via urllib.parse.parse qsl and urllib.parse.parse qs by using a vector called parameter cloaking. When an 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. The vulnerability arises from the unexpected behavior in parameter handling functions. For example, in the case of Apache Tomcat, when analyzing two identical parameters, it takes the value of the first occurrence.
Recommendations For versions 0 through 3.6.13, update to a version later than 3.6.13 to resolve the issue. For versions 3.7.0 through 3.7.10, update to a version later than 3.7.10 to resolve the issue. For versions 3.8.0 through 3.8.8, update to a version later than 3.8.8 to resolve the issue. For versions 3.9.0 through 3.9.2, update to a version later than 3.9.2 to resolve the issue. As a temporary workaround, consider restricting the use of the urllib.parse.parse qsl and urllib.parse.parse qs functions until a patch is available. Avoid using the semicolon (;) as a separator in query parameters to minimize the risk of exploitation.

Exploit

Fix

HTTP Request/Response Smuggling

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

ALSA-2021:4151
ALSA-2021:4162
ALT-PU-2021-1412
ALT-PU-2021-2420
ALT-PU-2021-2478
ALT-PU-2021-2653
ALT-PU-2024-3474
AZL-6827
BDU:2021-03763
BIT-DJANGO-2021-23336
BIT-LIBPYTHON-2021-23336
BIT-PYTHON-2021-23336
BIT-PYTHON-MIN-2021-23336
CESA-2021_1633
CESA-2021_4151
CESA-2021_4162
CLEANSTART-2026-BM51903
CLEANSTART-2026-SY44974
CVE-2021-23336
DLA-2569-1
DLA-2619-1
DLA-2628-1
DLA-3164-1
DLA-3575-1
MGASA-2021-0135
MGASA-2021-0165
OESA-2021-1125
OPENSUSE-SU-2021:0435-1
OPENSUSE-SU-2021_0435-1
OPENSUSE-SU-2024:11202-1
OPENSUSE-SU-2024:11279-1
OPENSUSE-SU-2024:11283-1
OPENSUSE-SU-2024:11284-1
OPENSUSE-SU-2024:11285-1
OPENSUSE-SU-2024:11286-1
OPENSUSE-SU-2024:12089-1
OPENSUSE-SU-2024:12893-1
OPENSUSE-SU-2024:12910-1
OPENSUSE-SU-2024:14037-1
OPENSUSE-SU-2024:14109-1
OPENSUSE-SU-2024:14434-1
OPENSUSE-SU-2025:15713-1
PSF-2021-1
RHSA-2021:1633
RHSA-2021:3252
RHSA-2021:3254
RHSA-2021:4151
RHSA-2021:4162
RHSA-2021_1633
RHSA-2021_4151
RHSA-2021_4162
RLSA-2021:4151
RLSA-2021:4162
ROSA-SA-2025-2646
SNYK-UPSTREAM-PYTHONCPYTHON-1074933
SUSE-FU-2022:0444-1
SUSE-FU-2022:0445-1
SUSE-SU-2021:0768-1
SUSE-SU-2021:0794-1
SUSE-SU-2021:0886-1
SUSE-SU-2021:0887-1
SUSE-SU-2021:0947-1
SUSE-SU-2021:1962-1
SUSE-SU-2021:2554-1
SUSE-SU-2021_0768-1
SUSE-SU-2021_0886-1
SUSE-SU-2021_0887-1
SUSE-SU-2021_0947-1
USN-4742-1

Affected Products

Alt Linux
Almalinux
Apache Tomcat
Astra Linux
Centos
Linuxmint
Red Hat
Rocky Linux
Suse
Ubuntu
Python