{"id":"GHSA-3f84-rpwh-47g6","summary":"Waitress vulnerable to DoS leading to high CPU usage/resource exhaustion","details":"### Impact\n\nWhen 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.\n\nA remote attacker could run waitress out of available sockets with very little resources required.\n\n### Patches\n\nWaitress 3.0.1 contains fixes that remove the race condition.\n\n### Workarounds\n\nNo work-around.\n\n### References\n\n- https://github.com/Pylons/waitress/issues/418\n- https://github.com/Pylons/waitress/pull/435\n","aliases":["CVE-2024-49769","PYSEC-2024-211"],"modified":"2025-01-21T18:19:46.257061Z","published":"2024-10-29T14:33:00Z","database_specific":{"cwe_ids":["CWE-772"],"severity":"HIGH","github_reviewed_at":"2024-10-29T14:33:00Z","nvd_published_at":"2024-10-29T15:15:12Z","github_reviewed":true},"references":[{"type":"WEB","url":"https://github.com/Pylons/waitress/security/advisories/GHSA-3f84-rpwh-47g6"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-49769"},{"type":"WEB","url":"https://github.com/Pylons/waitress/issues/418"},{"type":"WEB","url":"https://github.com/Pylons/waitress/pull/435"},{"type":"WEB","url":"https://github.com/Pylons/waitress/commit/1ae4e894c9f76543bee06584001583fc6fa8c95c"},{"type":"PACKAGE","url":"https://github.com/Pylons/waitress"},{"type":"WEB","url":"https://github.com/pypa/advisory-database/tree/main/vulns/waitress/PYSEC-2024-211.yaml"},{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2024/11/msg00012.html"}],"affected":[{"package":{"name":"waitress","ecosystem":"PyPI","purl":"pkg:pypi/waitress"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.0.1"}]}],"versions":["0.1","0.2","0.3","0.4","0.5","0.6","0.6.1","0.7","0.8","0.8.1","0.8.10","0.8.11b0","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","0.9.0","0.9.0b0","0.9.0b1","1.0.0","1.0.1","1.0.2","1.0a1","1.0a2","1.1.0","1.2.0","1.2.0b1","1.2.0b2","1.2.0b3","1.2.1","1.3.0","1.3.0b0","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","2.0.0","2.0.0b0","2.0.0b1","2.1.0","2.1.0b0","2.1.1","2.1.2","3.0.0"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/10/GHSA-3f84-rpwh-47g6/GHSA-3f84-rpwh-47g6.json"}}],"schema_version":"1.7.3","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"type":"CVSS_V4","score":"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"}]}