CVE-2024-49769

NameCVE-2024-49769
DescriptionWaitress 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.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)
ReferencesDLA-3955-1, ELA-1236-1
Debian Bugs1086468

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
waitress (PTS)jessie, jessie (lts)0.8.9-2+deb8u1vulnerable
stretch (security), stretch (lts), stretch1.0.1-1+deb9u1vulnerable
buster, buster (lts)1.2.0~b2-2+deb10u2fixed
buster (security)1.2.0~b2-2+deb10u1vulnerable
bullseye1.4.4-1.1+deb11u1vulnerable
bullseye (security)1.4.4-1.1+deb11u2fixed
bookworm2.1.2-2vulnerable
sid, trixie3.0.2-1fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
waitresssourcejessie(unfixed)end-of-life
waitresssourcebuster1.2.0~b2-2+deb10u2ELA-1236-1
waitresssourcebullseye1.4.4-1.1+deb11u2DLA-3955-1
waitresssource(unstable)3.0.1-11086468

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

Search for package or bug name: Reporting problems