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

Update dependency aiohttp to v3.10.11 [SECURITY] #4150

Merged
merged 1 commit into from
Dec 3, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Dec 3, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
aiohttp 3.10.8 -> 3.10.11 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2024-52303

Summary

A memory leak can occur when a request produces a MatchInfoError. This was caused by adding an entry to a cache on each request, due to the building of each MatchInfoError producing a unique cache entry.

Impact

If the user is making use of any middlewares with aiohttp.web then it is advisable to upgrade immediately.

An attacker may be able to exhaust the memory resources of a server by sending a substantial number (100,000s to millions) of such requests.


Patch: aio-libs/aiohttp@bc15db6

CVE-2024-52304

Summary

The Python parser parses newlines in chunk extensions incorrectly which can lead to request smuggling vulnerabilities under certain conditions.

Impact

If a pure Python version of aiohttp is installed (i.e. without the usual C extensions) or AIOHTTP_NO_EXTENSIONS is enabled, then an attacker may be able to execute a request smuggling attack to bypass certain firewalls or proxy protections.


Patch: aio-libs/aiohttp@259edc3


Release Notes

aio-libs/aiohttp (aiohttp)

v3.10.11

Compare Source

====================

Bug fixes

  • Authentication provided by a redirect now takes precedence over provided auth when making requests with the client -- by :user:PLPeeters.

    Related issues and pull requests on GitHub:
    :issue:9436.

  • Fixed :py:meth:WebSocketResponse.close() <aiohttp.web.WebSocketResponse.close> to discard non-close messages within its timeout window after sending close -- by :user:lenard-mosys.

    Related issues and pull requests on GitHub:
    :issue:9506.

  • Fixed a deadlock that could occur while attempting to get a new connection slot after a timeout -- by :user:bdraco.

    The connector was not cancellation-safe.

    Related issues and pull requests on GitHub:
    :issue:9670, :issue:9671.

  • Fixed the WebSocket flow control calculation undercounting with multi-byte data -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9686.

  • Fixed incorrect parsing of chunk extensions with the pure Python parser -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9851.

  • Fixed system routes polluting the middleware cache -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9852.

Removals and backward incompatible breaking changes

  • Improved performance of the connector when a connection can be reused -- by :user:bdraco.

    If BaseConnector.connect has been subclassed and replaced with custom logic, the ceil_timeout must be added.

    Related issues and pull requests on GitHub:
    :issue:9600.

Miscellaneous internal changes

  • Improved performance of the client request lifecycle when there are no cookies -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9470.

  • Improved performance of sending client requests when the writer can finish synchronously -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9485.

  • Improved performance of serializing HTTP headers -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9603.

  • Passing enable_cleanup_closed to :py:class:aiohttp.TCPConnector is now ignored on Python 3.12.7+ and 3.13.1+ since the underlying bug that caused asyncio to leak SSL connections has been fixed upstream -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9726, :issue:9736.


v3.10.10

Compare Source

====================

Bug fixes

  • Fixed error messages from :py:class:~aiohttp.resolver.AsyncResolver being swallowed -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9451, :issue:9455.

Features

  • Added :exc:aiohttp.ClientConnectorDNSError for differentiating DNS resolution errors from other connector errors -- by :user:mstojcevich.

    Related issues and pull requests on GitHub:
    :issue:8455.

Miscellaneous internal changes

  • Simplified DNS resolution throttling code to reduce chance of race conditions -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9454.


v3.10.9

Compare Source

===================

Bug fixes

  • Fixed proxy headers being used in the ConnectionKey hash when a proxy was not being used -- by :user:bdraco.

    If default headers are used, they are also used for proxy headers. This could have led to creating connections that were not needed when one was already available.

    Related issues and pull requests on GitHub:
    :issue:9368.

  • Widened the type of the trace_request_ctx parameter of
    :meth:ClientSession.request() <aiohttp.ClientSession.request> and friends
    -- by :user:layday.

    Related issues and pull requests on GitHub:
    :issue:9397.

Removals and backward incompatible breaking changes

  • Fixed failure to try next host after single-host connection timeout -- by :user:brettdh.

    The default client :class:aiohttp.ClientTimeout params has changed to include a sock_connect timeout of 30 seconds so that this correct behavior happens by default.

    Related issues and pull requests on GitHub:
    :issue:7342.

Miscellaneous internal changes

  • Improved performance of resolving hosts with Python 3.12+ -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9342.

  • Reduced memory required for timer objects created during the client request lifecycle -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    :issue:9406.



Configuration

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

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, 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.

Copy link

sonarqubecloud bot commented Dec 3, 2024

Copy link

codecov bot commented Dec 3, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.27%. Comparing base (ee78bd3) to head (61376ef).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4150   +/-   ##
=======================================
  Coverage   80.27%   80.27%           
=======================================
  Files         310      310           
  Lines       11896    11896           
  Branches      537      537           
=======================================
  Hits         9549     9549           
  Misses       2161     2161           
  Partials      186      186           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@renovate renovate bot changed the title Update dependency aiohttp to v3.11.9 [SECURITY] Update dependency aiohttp to v3.10.11 [SECURITY] Dec 3, 2024
@conbrad conbrad temporarily deployed to production December 3, 2024 18:04 Inactive
@conbrad conbrad merged commit d31d733 into main Dec 3, 2024
26 checks passed
@conbrad conbrad deleted the renovate/pypi-aiohttp-vulnerability branch December 3, 2024 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant