CVE-2026-53537
python-multipart: Content-Disposition parameter smuggling via RFC 2231/5987 extended parameters
Impact
Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, parse_options_header parsed Content-Disposition (and Content-Type) headers with email.message.Message, which transparently applies RFC 2231/5987 decoding. The extended parameter syntax (filename*=charset'lang'value, name*=..., and the filename*0/filename*1 continuation form) is decoded and surfaced under the bare filename/name key, and overrides the plain parameter when both are present. RFC 7578 §4.2 explicitly forbids the filename* form in multipart/form-data. Components that follow RFC 7578, or that do not implement RFC 2231/5987 decoding for multipart/form-data (WAFs, proxies, gateways), may interpret such a header differently. An attacker can exploit that difference to smuggle a different field name or filename past an upstream inspector to the backend. This vulnerability is fixed in 0.0.30.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| pip | python-multipart | < 0.0.30 | 0.0.30 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Fastapiexpert | Python-Multipart | before 0.0.30 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/advisories/GHSA-vffw-93wf-4j4q
- https://github.com/Kludex/python-multipart/security/advisories/GHSA-vffw-93wf-4j4q
- https://nvd.nist.gov/vuln/detail/CVE-2026-53537
- https://github.com/Kludex/python-multipart
- https://github.com/pypa/advisory-database/blob/main/vulns/python-multipart/PYSEC-2026-3041.yaml
- https://pypi.org/project/python-multipart