Python-Multipart: Quadratic-time querystring parsing with semicolon separators causes CPU denial of service
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Partial Red Hat: 9 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-400.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Kludex | python-multipart | before 0.0.30 | 0.0.30 | Patch available | CNA |
| — | python-multipart (PyPI) | before 0.0.30 | 0.0.30 | Patch available | GHSA-5rvq-cxj2-64vf |
- python-multipart VendorKludex Affected before 0.0.30 Fixed in 0.0.30 Patch available CNA
- python-multipart (PyPI) Vendor— Affected before 0.0.30 Fixed in 0.0.30 Patch available GHSA-5rvq-cxj2-64vf
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:fastapiexpert:python-multipart:*:*:*:*:*:python:*:* | before 0.0.30 | Vulnerable | Fastapiexpert |
- cpe:2.3:a:fastapiexpert:python-multipart:*:*:*:*:*:python:*:* Versions before 0.0.30 Vulnerable ·Fastapiexpert
Remediation
- Fix · CNA python-multipart (Kludex) Fixed in 0.0.30
- Fix · GHSA-5rvq-cxj2-64vf python-multipart (PyPI) Fixed in 0.0.30 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Exploit Intelligence | Affected | No fix yet: Fix deferred |
| Migration Toolkit for Applications 8 | Affected | No fix yet: Fix deferred |
| OpenShift Lightspeed | Affected | No fix yet: Fix deferred |
| Red Hat AI Inference Server | Affected | No fix yet: Fix deferred |
| Red Hat Ansible Automation Platform 2 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux AI (RHEL AI) 3 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift AI (RHOAI) | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Virtualization 4 | Affected | No fix yet: Fix deferred |
| Red Hat Satellite 6 | Affected | No fix yet: Fix deferred |
Not affected: 3 products
- Lightspeed Core
- Red Hat Enterprise Linux command line assistant
- Red Hat Hardened Images
Timeline
- 2026-10-02 Threatist record created from CVE-2026-53539
- 2026-10-03 Alias added: GHSA-5rvq-cxj2-64vf
References
More Kludex vulnerabilities
- TI-2025-38917 Starlette vulnerable to O(n^2) DoS via Range header merging in starlette.responses.FileResponse CVSS 3.1HIGH 7.5
- TI-2026-30841 Python-Multipart: Denial of Service via unbounded multipart part headers CVSS 3.1HIGH 7.5
- TI-2024-36140 python-multipart has a Denial of service (DoS) via deformation `multipart/form-data` boundary CVSS 3.1HIGH 7.5
Sources
- CVE-2026-53539 · CVE Program
- CVE-2026-53539 · NVD
- FIRST EPSS
- GHSA-5rvq-cxj2-64vf · GitHub Advisory Database · CC BY 4.0
- CVE-2026-53539 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences