Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update dependency waitress to v3.0.1 [security] #5838

Closed
wants to merge 0 commits into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 7, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
waitress (changelog) 3.0.0 -> 3.0.1 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2024-49769

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

CVE-2024-49768

Impact

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.

Patches

Waitress 3.0.1 fixes the race condition.

Workarounds

Disable channel_request_lookahead, this is set to 0 by default disabling this feature. For this vulnerability this value is required to be changed from the default.

For more information

If you have any questions or comments about this advisory:

Thanks

  • m4yfly and urn1ce From TianGong Team of Legendsec at Qi'anxin Group.

Release Notes

Pylons/waitress (waitress)

v3.0.1

Compare Source

Backward Incompatibilities


- Python 3.8 is no longer supported.
  See https://github.com/Pylons/waitress/pull/445.

Features
~~~~~~~~

- Added support for Python 3.13.
  See https://github.com/Pylons/waitress/pull/445.

Security
~~~~~~~~

- Fix a bug that would lead to Waitress busy looping on select() on a half-open
  socket due to a race condition that existed when creating a new HTTPChannel.
  See https://github.com/Pylons/waitress/pull/435,
  https://github.com/Pylons/waitress/issues/418 and
  https://github.com/Pylons/waitress/security/advisories/GHSA-3f84-rpwh-47g6

  With thanks to Dylan Jay and Dieter Maurer for their extensive debugging and
  helping track this down.

- No longer strip the header values before passing them to the WSGI environ.
  See https://github.com/Pylons/waitress/pull/434 and
  https://github.com/Pylons/waitress/issues/432

- Fix a race condition in Waitress when `channel_request_lookahead` is enabled
  that could lead to HTTP request smuggling.

  See https://github.com/Pylons/waitress/security/advisories/GHSA-9298-4cf8-g4wj

Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the python Pull requests that update Python code label Jan 7, 2025
@renovate renovate bot requested a review from a team as a code owner January 7, 2025 20:01
@renovate renovate bot added the security label Jan 7, 2025
@mattiaverga mattiaverga force-pushed the renovate/pypi-waitress-vulnerability branch from b7cc866 to e5681be Compare January 12, 2025 10:17
@mattiaverga mattiaverga deleted the renovate/pypi-waitress-vulnerability branch January 12, 2025 10:17
Copy link
Contributor Author

renovate bot commented Jan 12, 2025

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (>=1.4.4). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
python Pull requests that update Python code security
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant