{"answers":{"affected":"3 open source packages ship an affected version, including waitress. It affects 1 product.","exploited":"There is no known exploitation of CVE-2024-49768 in the wild and no public exploit code.","fix":"Upgrade waitress to 3.0.1 or later.","what":"CVE-2024-49768 is a critical vulnerability in Pylons waitress, published on 29 Oct 2024. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2024-49768 and fix it if it is affected.\n\nWhat it is: CVE-2024-49768 is a critical vulnerability in Pylons waitress, published on 29 Oct 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2024-49768 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- waitress (PyPI): affected from 2.0.0; fixed in 3.0.1\n- waitress (PyPI): affected from 2.0.0; fixed in 3.0.1\n- waitress (PyPI): affected from 2.0.0; fixed in 3.0.1\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2024-49768/ (Markdown: https://insights.sbomify.com/CVE-2024-49768/index.md)","id":"CVE-2024-49768","markdown":"https://insights.sbomify.com/CVE-2024-49768/index.md","name":"CVE-2024-49768","record":{"aliases":["AZL-57396","CLSA-2025-1750810247","DEBIAN-CVE-2024-49768","ECHO-b844-fa43-fd25","GHSA-9298-4cf8-g4wj","OESA-2024-2333","OESA-2024-2334","OESA-2024-2335","OESA-2024-2336","PYSEC-2024-210","UBUNTU-CVE-2024-49768"],"analysis":{"component_type":"server_software","fix_type":"upgrade","impacts":["security_bypass"],"network_reachable":"yes","non_default_config":true,"product_category":"Python WSGI server","requires_auth":"none","summary":"A race condition in Waitress allows secondary requests to be processed after a connection should have closed, bypassing security controls when request lookahead is enabled.","user_interaction":"not_required","vuln_class":"race_condition"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"waitress","vendor":"agendaless"}],"cvss":{"score":9.1,"severity":"critical","source":"cna","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","version":"3.1"},"cwes":[{"id":"CWE-444","name":"Inconsistent Interpretation of HTTP Requests"},{"id":"CWE-367","name":"Time-of-check Time-of-use (TOCTOU) Race Condition"}],"description":"Waitress is a Web Server Gateway Interface server for Python 2 and 3. A remote client may send a request that is exactly recv_bytes (defaults to 8192) long, followed by a secondary request using HTTP pipelining. When request lookahead is disabled (default) we won't read any more requests, and when the first request fails due to a parsing error, we simply close the connection. However when request lookahead is enabled, it is possible to process and receive the first request, start sending the error message back to the client while we read the next request and queue it. This will allow the secondary request to be serviced by the worker thread while the connection should be closed. Waitress 3.0.1 fixes the race condition. As a workaround, disable channel_request_lookahead, this is set to 0 by default disabling this feature.","ecosystems":["PyPI"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"Waitress has request processing race condition in HTTP pipelining with invalid first request","id":"CVE-2024-49768","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":null,"products":[],"type":"race_condition","year":"2024"},"n_packages":3,"n_references":2,"next":{"headline":"Waitress has a denial of service leading to high CPU usage/resource exhaustion","id":"CVE-2024-49769"},"packages":[{"ecosystem":"PyPI","fixed":["3.0.1"],"introduced":["2.0.0"],"last_affected":[],"package":"waitress","purl":null,"source":"GHSA-9298-4cf8-g4wj"},{"ecosystem":"PyPI","fixed":["3.0.1"],"introduced":["2.0.0"],"last_affected":[],"package":"waitress","purl":"pkg:pypi/waitress","source":"GHSA-9298-4cf8-g4wj"},{"ecosystem":"PyPI","fixed":["3.0.1"],"introduced":["2.0.0"],"last_affected":[],"package":"waitress","purl":"pkg:pypi/waitress","source":"PYSEC-2024-210"}],"prev":{"headline":"Werkzeug possible resource exhaustion when parsing file data in forms","id":"CVE-2024-49767"},"products":["waitress"],"published":"2024-10-29","related":[{"cvss_score":7.5,"headline":"Waitress has a denial of service leading to high CPU usage/resource exhaustion","id":"CVE-2024-49769","kev_date_added":null,"published":"2024-10-29"},{"cvss_score":7.5,"headline":"HTTP Request Smuggling in waitress","id":"CVE-2022-24761","kev_date_added":null,"published":"2022-03-17"},{"cvss_score":7.1,"headline":"HTTP Request Smuggling: Content-Length Sent Twice in Waitress","id":"CVE-2019-16792","kev_date_added":null,"published":"2020-01-22"},{"cvss_score":7.1,"headline":"HTTP Request Smuggling in Waitress: Invalid whitespace characters in headers","id":"CVE-2019-16789","kev_date_added":null,"published":"2019-12-26"},{"cvss_score":7.1,"headline":"HTTP Request Smuggling: LF vs CRLF handling in Waitress","id":"CVE-2019-16785","kev_date_added":null,"published":"2019-12-20"},{"cvss_score":7.1,"headline":"HTTP Request Smuggling: Invalid Transfer-Encoding in Waitress","id":"CVE-2019-16786","kev_date_added":null,"published":"2019-12-20"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"yes","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2024-10-29","vendors":["Pylons"]},"summary":"A race condition in Waitress allows secondary requests to be processed after a connection should have closed, bypassing security controls when request lookahead is enabled.","url":"https://insights.sbomify.com/CVE-2024-49768/"}