CVE-2024-53981: python-multipart has a Denial of service (DoS) via deformation `multipart/form-data` boundary

7.5 CVSS

Description

python-multipart is a streaming multipart parser for Python. When parsing form data, python-multipart skips line breaks (CR \r or LF \n) in front of the first boundary and any tailing bytes after the last boundary. This happens one byte at a time and emits a log event each time, which may cause excessive logging for certain inputs. An attacker could abuse this by sending a malicious request with lots of data before the first or after the last boundary, causing high CPU load and stalling the processing thread for a significant amount of time. In case of ASGI application, this could stall the event loop and prevent other requests from being processed, resulting in a denial of service (DoS). This vulnerability is fixed in 0.0.18.

Classification

CVE ID: CVE-2024-53981

CVSS Base Severity: HIGH

CVSS Base Score: 7.5

Affected Products

Vendor: Kludex

Product: python-multipart

Exploit Prediction Scoring System (EPSS)

EPSS Score: 0.04% (probability of being exploited)

EPSS Percentile: 11.44% (scored less or equal to compared to others)

EPSS Date: 2025-02-03 (when was this score calculated)

References

https://github.com/Kludex/python-multipart/security/advisories/GHSA-59g5-xgcq-4qw3
https://github.com/Kludex/python-multipart/commit/c4fe4d3cebc08c660e57dd709af1ffa7059b3177

Timeline