pylons/waitress · Security
Waitress vulnerable to DoS leading to high CPU usage/resource exhaustion
- GHSA ID
- GHSA-3f84-rpwh-47g6
- CVE ID
- CVE-2024-49769
- Severity
- high
- Published
- Updated
- CVSS
- 7.5 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- CVSS v3
- 7.5 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- CVSS v4
- 8.7 · CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Description
Impact
When a remote client closes the connection before waitress has had the opportunity to call getpeername() waitress won't correctly clean up the connection leading to the main thread attempting to write to a socket that no longer exists, but not removing it from the list of sockets to attempt to process. This leads to a busy-loop calling the write function.
A remote attacker could run waitress out of available sockets with very little resources required.
Patches
Waitress 3.0.1 contains fixes that remove the race condition.
Workarounds
No work-around.
References
CWEs
- CWE-772 · Missing Release of Resource after Effective Lifetime
References
- https://github.com/Pylons/waitress/security/advisories/GHSA-3f84-rpwh-47g6 ↗
- https://github.com/Pylons/waitress/issues/418 ↗
- https://github.com/Pylons/waitress/pull/435 ↗
- https://nvd.nist.gov/vuln/detail/CVE-2024-49769 ↗
- https://github.com/Pylons/waitress/commit/1ae4e894c9f76543bee06584001583fc6fa8c95c ↗
- https://github.com/pypa/advisory-database/tree/main/vulns/waitress/PYSEC-2024-211.yaml ↗
- https://lists.debian.org/debian-lts-announce/2024/11/msg00012.html ↗
- https://github.com/advisories/GHSA-3f84-rpwh-47g6 ↗