CVE Vulnerabilities

CVE-2024-49767

Uncontrolled Resource Consumption

Published: Oct 25, 2024 | Modified: Jan 03, 2025
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 2.x
RedHat/V2
RedHat/V3
5.3 MODERATE
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Ubuntu
MEDIUM

Werkzeug is a Web Server Gateway Interface web application library. Applications using werkzeug.formparser.MultiPartParser corresponding to a version of Werkzeug prior to 3.0.6 to parse multipart/form-data requests (e.g. all flask applications) are vulnerable to a relatively simple but effective resource exhaustion (denial of service) attack. A specifically crafted form submission request can cause the parser to allocate and block 3 to 8 times the upload size in main memory. There is no upper limit; a single upload at 1 Gbit/s can exhaust 32 GB of RAM in less than 60 seconds. Werkzeug version 3.0.6 fixes this issue.

Weakness

The product does not properly control the allocation and maintenance of a limited resource.

Affected Software

Name Vendor Start Version End Version
Quart Palletsprojects * 0.19.7 (excluding)
Werkzeug Palletsprojects * 3.0.6 (excluding)
Red Hat OpenShift AI 2.16 RedHat registry.redhat.io/rhoai/odh-modelmesh-runtime-adapter-rhel8:sha256:5f61cf084b1d79ee1b651f2b1777ff238c3e31eb76eba71ccb33b01c46f8c1af *
Red Hat OpenShift AI 2.17 RedHat registry.redhat.io/rhoai/odh-modelmesh-runtime-adapter-rhel8:sha256:78e18816a15b2d744a76710523a574f483606646d5e661b58a1d8562dc85526f *
Python-werkzeug Ubuntu devel *
Python-werkzeug Ubuntu jammy *
Python-werkzeug Ubuntu noble *
Python-werkzeug Ubuntu oracular *
Python-werkzeug Ubuntu plucky *
Python-werkzeug Ubuntu upstream *
Quart Ubuntu oracular *

Potential Mitigations

  • Mitigation of resource exhaustion attacks requires that the target system either:

  • The first of these solutions is an issue in itself though, since it may allow attackers to prevent the use of the system by a particular valid user. If the attacker impersonates the valid user, they may be able to prevent the user from accessing the server in question.

  • The second solution is simply difficult to effectively institute – and even when properly done, it does not provide a full solution. It simply makes the attack require more resources on the part of the attacker.

References