CVE-2026-53539
CVE-2026-53539 · Python-Multipart: Quadratic-time querystring parsing with semicolon separators causes CPU denial of service
This page contains facts from public vulnerability sources. Check the original advisory before updating.
Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, when parsing application/x-www-form-urlencoded bodies, QuerystringParser located the field separator with a two step lookup: it first scanned the entire remaining buffer for &, and only when no & existed anywhere ahead did it fall back to scanning for ;. For a body that uses ; as the separator and contains no &, every field iteration performed a full failed & scan over the entire remaining buffer before locating the nearby ;. With N semicolon separated fields in a chunk of size B, this yields O(B^2) byte comparisons per chunk. An attacker can submit a small crafted body of the form a;a;a;... and cause the parser to spend seconds of CPU per request. A handful of concurrent requests can exhaust worker processes. This vulnerability is fixed in 0.0.30.
CVSS 7.5 · High · EPSS 0.5% · Fix available
- Published
- Updated
Affected products and versions
python-multipart
- Versions
- < 0.0.30: Affected
No fix published
python-multipart Debian:12
- Versions
- 0.0.17-1
- 0.0.17-2
- 0.0.17-3
- 0.0.17-4
- 0.0.17-5
- 0.0.20-1
- 0.0.20-1.1
- 0.0.20-1.1~deb13u1
- 0.0.22-1
- 0.0.26-1
- 0.0.32-1
- 0.0.5-3
- 0.0.6-1
- 0.0.9-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-multipart Debian:13
- Versions
- 0.0.20-1
- 0.0.20-1.1
- 0.0.20-1.1~deb13u1
- 0.0.22-1
- 0.0.26-1
- 0.0.32-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-multipart Debian:14
- Versions
- 0.0.20-1
- 0.0.20-1.1
- 0.0.20-1.1~deb13u1
- 0.0.22-1
- 0.0.26-1
- Affected ranges
- ECOSYSTEM: < 0.0.32-1
Update to 0.0.32-1
python-multipart PyPI
- Versions
- 0.0.1
- 0.0.10
- 0.0.11
- 0.0.12
- 0.0.13
- 0.0.14
- 0.0.15
- 0.0.16
- 0.0.17
- 0.0.18
- 0.0.19
- 0.0.2
- 0.0.20
- 0.0.21
- 0.0.22
- 0.0.23
- 0.0.24
- 0.0.25
- 0.0.26
- 0.0.27
- 0.0.28
- 0.0.29
- 0.0.3
- 0.0.4
- 0.0.5
- 0.0.6
- 0.0.7
- 0.0.8
- 0.0.9
- Affected ranges
- ECOSYSTEM: < 0.0.30
Update to 0.0.30
python-multipart Ubuntu:Pro:22.04:LTS
- Versions
- 0.0.5-2
- 0.0.5-2ubuntu0.1~esm1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-multipart Ubuntu:Pro:24.04:LTS
- Versions
- 0.0.5-3
- 0.0.6-1
- 0.0.9-1
- 0.0.9-1ubuntu0.1~esm1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-multipart Ubuntu:25.10
- Versions
- 0.0.20-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-multipart Ubuntu:26.10
- Versions
- 0.0.20-1.1
- 0.0.26-1
- 0.0.32-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-multipart Ubuntu:26.04:LTS
- Versions
- 0.0.20-1
- 0.0.20-1.1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published