CVE-2024-24762: python-multipart vulnerable to Content-Type Header ReDoS
(updated )
When using form data, python-multipart
uses a Regular Expression to parse the HTTP Content-Type
header, including options.
An attacker could send a custom-made Content-Type
option that is very difficult for the RegEx to process, consuming CPU resources and stalling indefinitely (minutes or more) while holding the main event loop. This means that process can’t handle any more requests.
This can create a ReDoS (Regular expression Denial of Service): https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS
This only applies when the app uses form data, parsed with python-multipart
.
References
- github.com/Kludex/python-multipart
- github.com/Kludex/python-multipart/commit/20f0ef6b4e4caf7d69a667c54dff57fe467109a4
- github.com/Kludex/python-multipart/security/advisories/GHSA-2jv5-9r88-3w3p
- github.com/advisories/GHSA-2jv5-9r88-3w3p
- github.com/andrew-d/python-multipart/blob/d3d16dae4b061c34fe9d3c9081d9800c49fc1f7a/multipart/multipart.py
- github.com/encode/starlette/commit/13e5c26a27f4903924624736abd6131b2da80cc5
- github.com/github/advisory-database/pull/4829
- github.com/pypa/advisory-database/tree/main/vulns/fastapi/PYSEC-2024-38.yaml
- github.com/tiangolo/fastapi/commit/9d34ad0ee8a0dfbbcce06f76c2d5d851085024fc
- github.com/tiangolo/fastapi/releases/tag/0.109.1
- nvd.nist.gov/vuln/detail/CVE-2024-24762
Detect and mitigate CVE-2024-24762 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →