Name | CVE-2024-49769 |
Description | Waitress is a Web Server Gateway Interface server for Python 2 and 3. 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. Waitress 3.0.1 contains fixes that remove the race condition. |
Source | CVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
References | DLA-3955-1, ELA-1236-1 |
Debian Bugs | 1086468 |
Vulnerable and fixed packages
The table below lists information on source packages.
Source Package | Release | Version | Status |
---|
waitress (PTS) | jessie, jessie (lts) | 0.8.9-2+deb8u1 | vulnerable |
| stretch (security), stretch (lts), stretch | 1.0.1-1+deb9u1 | vulnerable |
| buster, buster (lts) | 1.2.0~b2-2+deb10u2 | fixed |
| buster (security) | 1.2.0~b2-2+deb10u1 | vulnerable |
| bullseye | 1.4.4-1.1+deb11u1 | vulnerable |
| bullseye (security) | 1.4.4-1.1+deb11u2 | fixed |
| bookworm | 2.1.2-2 | vulnerable |
| sid, trixie | 3.0.2-1 | fixed |
The information below is based on the following data on fixed versions.
Notes
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
Fixed by: https://github.com/Pylons/waitress/commit/1ae4e894c9f76543bee06584001583fc6fa8c95c (v3.0.1)
[stretch] - waitress <ignored> (Vulnerable code is in python2.7/python3.7)
waitress >= 1.2 vendors a copy of the asyncore module removed in Python 3.12 as wasyncore
older waitress versions use the Python asyncore module instead