CVE-2026-53537: python-multipart: Content-Disposition parameter smuggling via RFC 2231/5987 extended parameters
(updated )
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.
References
- github.com/Kludex/python-multipart
- github.com/Kludex/python-multipart/security/advisories/GHSA-vffw-93wf-4j4q
- github.com/advisories/GHSA-vffw-93wf-4j4q
- github.com/pypa/advisory-database/blob/main/vulns/python-multipart/PYSEC-2026-3041.yaml
- nvd.nist.gov/vuln/detail/CVE-2026-53537
- pypi.org/project/python-multipart
Code Behaviors & Features
Detect and mitigate CVE-2026-53537 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →