Skip to content

← Public intelligence

PyPI package

aiohttp

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

55 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. Medium, CVSS 6.3PyPIAmendedPublished

    AIOHTTP: Absolute-form request targets can spoof Request.scheme

    CVE-2026-111748 · GHSA-f9xw-jh8m-3mwq

    Affected
    • PyPI aiohttp <= 3.14.3
    Fixed in
    3.14.4· Vendor fix available
    Issue
    An attacker sending an absolute-form request can spoof the scheme used. Impact If user code depends on the Request.scheme attribute for anything security related, an attacker may be able to circumvent this logic, tricking the application into thinking a connection is encrypted when it is not, or vice versa. Workaround A WAF rule to reject absolute-form requests (legitimate requests should only use this form for proxies).

    Recommended action: Upgrade to 3.14.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  2. Low, CVSS 2.3PyPIAmendedPublished

    AIOHTTP: Cookie from subdomain can remove Host-Only Scope from existing cookies

    CVE-2026-111749 · GHSA-gx76-c99x-2c96

    Affected
    • PyPI aiohttp <= 3.14.3
    Fixed in
    3.14.4· Vendor fix available
    Issue
    A subdomain can remove the Host-Only flag from an existing cookie to a parent domain. Impact A user accessing untrusted subdomains could see their Host-Only protections stripped from cookies. Given most usecases won't reflect these cookies to a browser, the impact is limited.

    Recommended action: Upgrade to 3.14.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  3. Medium, CVSS 6.9PyPIAmendedPublished

    AIOHTTP: Connector pool exhaustion via Max-Age overflow

    CVE-2026-111065 · GHSA-6cjc-53gc-5rqm

    Affected
    • PyPI aiohttp <= 3.14.3
    Fixed in
    3.14.4· Vendor fix available
    Issue
    An overflow in Max-Age processing can skip closing a connection. Impact An attacker may be able to exhaust the connection pool temporarily, until garbage collection resolves the connections.

    Recommended action: Upgrade to 3.14.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  4. Medium, CVSS 6.3PyPIAmendedPublished

    AIOHTTP: Pure-Python parser request smuggling

    CVE-2026-111750 · GHSA-pqxq-w44r-73xw

    Affected
    • PyPI aiohttp <= 3.14.3
    Fixed in
    3.14.4· Vendor fix available
    Issue
    The pure Python parser is vulnerable to an HTTP request smuggling attack. Impact If users are using the Python parser (AIOHTTPNOEXTENSIONS, or not a standard wheel installed), then an application may be vulnerable to a request smuggling attack. Workaround Switch to the default C parser.

    Recommended action: Upgrade to 3.14.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  5. High, CVSS 8.2PyPIAmendedPublished

    AIOHTTP: File descriptor exhaustion in multipart requests

    CVE-2026-111066 · GHSA-9xw5-w5jj-pvcg

    Affected
    • PyPI aiohttp >= 2.0.0, < 3.14.4
    Fixed in
    3.14.4· Vendor fix available
    Issue
    An attacker can exhaust file descriptors with specially crafted multipart requests. Impact If a handler uses Request.post(), it may be possible for an attacker to use an unlimited number of file descriptors, potentially resulting in resource exhaustion.

    Recommended action: Upgrade to 3.14.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  6. High, CVSS 8.2PyPIAmendedPublished

    aiohttp server lacks an initial request/header timeout

    CVE-2026-111064 · GHSA-5wr8-gcqf-gqf3

    Affected
    • PyPI aiohttp <= 3.14.3
    Fixed in
    3.14.4· Vendor fix available
    Issue
    The keepalive timeout was not used during the initial portion of a request. Impact An attacker could keep an idle connection open indefinitely before sending any data. Workaround Use a reverse proxy (as recommended for all production deployments) with sensible keepalive limits.

    Recommended action: Upgrade to 3.14.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  7. Medium, CVSS 6.3PyPIAmendedPublished

    AIOHTTP: Secure attribute not enforced for shared cookie

    CVE-2026-111063 · GHSA-494j-54xm-rwp3

    Affected
    • PyPI aiohttp < 3.14.4
    Fixed in
    3.14.4· Vendor fix available
    Issue
    The Secure attribute was not being enforced for the shared cookie. Impact It may be possible to send a shared cookie marked Secure through an unencrypted request.

    Recommended action: Upgrade to 3.14.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  8. High, CVSS 8.7PyPIAmendedPublished

    aiohttp: Multiple instances of excessive or unbounded memory/CPU use

    GHSA-2g87-pp6c-29x5

    Affected
    • PyPI aiohttp <= 3.14.3
    Fixed in
    3.14.4· Vendor fix available
    Issue
    Multiple cases were found where aiohttp could use excessive or unbounded memory, or excessive CPU consumption on attacker controlled requests. Impact An attacker could cause resource exhaustion through specially crafted requests.

    Recommended action: Upgrade to 3.14.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.com (1)osv.dev (2)Source checked Evidence →
  9. High, CVSS 7.1PyPIPublished

    AIOHTTP: Out-of-bounds heap read in C HTTP response parser error path (malformed chunked response)

    CVE-2026-69244 · GHSA-cq5v-8q36-5273

    Affected
    • PyPI aiohttp <= 3.14.2
    Fixed in
    3.14.3· Vendor fix available
    Issue
    An out-of-bounds heap read could occur in the C response parser while building an error message for a malformed response. Impact An attacker controlled server, or possibly an accidental response could trigger a DoS in the client. Workaround If unable to upgrade, the Python parser is unaffected and can be used with AIOHTTPNOEXTENSIONS=1. --- Patch: https://github.com/aio-libs/aiohttp/commit/49f65d54150397892f7bcc4aae887767d51c322d

    Recommended action: Upgrade to 3.14.3 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  10. Medium, CVSS 6.3PyPIPublished

    AIOHTTP: HTTP request smuggling via WebSocket upgrade

    CVE-2026-69243 · GHSA-mfx4-hv73-q22v

    Affected
    • PyPI aiohttp <= 3.14.1
    Fixed in
    3.14.2· Vendor fix available
    Issue
    The HTTP parsers were vulnerable to a request smuggling attack relating to WebSocket upgrades. Impact If using the server-side component, it may be possible for an attacker to execute a request smuggling vulnerability using an edge case in the WebSocket upgrade procedure. AIOHTT is unaware of any public exploit code. --- Patch: https://github.com/aio-libs/aiohttp/commit/6ae358f0983c3f4d6f67692b2f8e65dc8e091c98

    Recommended action: Upgrade to 3.14.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  11. Medium, CVSS 6.9PyPIPublished

    AIOHTTP: WebSocket client accepts compressed frames without negotiated permessage-deflate

    CVE-2026-59881 · GHSA-mq44-7p77-q5h7

    Affected
    • PyPI aiohttp <= 3.14.1
    Fixed in
    3.14.2· Vendor fix available
    Issue
    The client accepts and decompresses frames with the RSV1 bit set even when the permessage-deflate extension was not negotiated. Impact A client may unexpectedly decompress WebSocket frames when explicitly opted out. This could lead to additional CPU/memory consumption, but is unlikely to be a significant issue unless a zip bomb vulnerability or similar is also present. --- Patch: https://github.com/aio-libs/aiohttp/commit/47fb6ae354d4fa22048f4dbe7dbf82b625f0a2f6

    Recommended action: Upgrade to 3.14.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  12. Medium, CVSS 6.6PyPIAmendedPublished

    aiohttp: Incomplete websocket frame payloads bypass memory limits

    CVE-2026-54274 · GHSA-xcgm-r5h9-7989

    Affected
    • PyPI aiohttp <= 3.14.0
    Fixed in
    3.14.1· Vendor fix available
    Issue
    If an attacker sends large incomplete websocket frame payloads, it may be possible to bypass the usual size limits on memory use. Impact If a web application has WebSocket endpoints, it may be possible for an attacker to execute a DoS attack through excessive memory use. ----- Patch: https://github.com/aio-libs/aiohttp/commit/14b6ee851fb16ec199acb950de0c82d476799e7d

    Recommended action: Upgrade to 3.14.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  13. Low, CVSS 2.7PyPIAmendedPublished

    aiohttp: TLS Server Hostname Override Is Ignored When Reusing HTTPS Connections

    CVE-2026-54275 · GHSA-4m7w-qmgq-4wj5

    Affected
    • PyPI aiohttp <= 3.14.0
    Fixed in
    3.14.1· Vendor fix available
    Issue
    The serverhostname TLS SNI check can be bypassed when an existing connection is reused. Impact If an application makes multiple requests to the same domain, but with different per-request serverhostname parameters, then the later calls may succeed by reusing the existing connection when they should have been rejected due to the TLS SNI check. Workaround Disable keepalive if you need to change the serverhostname check between requests. ----- Patch: https://github.com/aio-libs/aiohttp/commit/0ca2b6c28a25726527a8b60f25960262a91ed0e0

    Recommended action: Upgrade to 3.14.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  14. Low, CVSS 1.7PyPIAmendedPublished

    aiohttp: Payload Response Resources Are Not Closed After Mid-Body Disconnect

    CVE-2026-54280 · GHSA-9x8q-7h8h-wcw9

    Affected
    • PyPI aiohttp <= 3.14.0
    Fixed in
    3.14.1· Vendor fix available
    Issue
    Payload resources are not closed correctly when a client disconnects in the middle of a write. Impact If a payload is using an open file or similar limited resource, then an attacker may be able to cause resource starvation temporarily until garbage collection or similar closes the file. ----- Patch: https://github.com/aio-libs/aiohttp/commit/a762eda5242f6490d6ba667533193f8b473ad587

    Recommended action: Upgrade to 3.14.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  15. Medium, CVSS 6.6PyPIAmendedPublished

    aiohttp: HTTP/1 Pipelined Requests Queue Without Limit

    CVE-2026-54273 · GHSA-4fvr-rgm6-gqmc

    Affected
    • PyPI aiohttp <= 3.14.0
    Fixed in
    3.14.1· Vendor fix available
    Issue
    No limit was present on the number of pipelined requests that could be queued. Impact An attacker may be able to use pipelined requests to use excessive amounts of memory, potentially leading to DoS. ----- Patch: https://github.com/aio-libs/aiohttp/commit/dfdfa9d5aad5d21f91c79fb2ceeba0f8046cb6cf

    Recommended action: Upgrade to 3.14.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  16. Medium, CVSS 6.6PyPIAmendedPublished

    aiohttp: Unread Compressed Request Bodies Bypass client_max_size During Cleanup

    CVE-2026-54278 · GHSA-g3cq-j2xw-wf74

    Affected
    • PyPI aiohttp <= 3.14.0
    Fixed in
    3.14.1· Vendor fix available
    Issue
    During cleanup it is possible for a compressed request body to be decompressed into memory in one chunk. Impact An attacker may be able to send a compressed payload in specific situations that could be decompressed into memory, potentially leading to DoS (a zip bomb edge case). Workaround Disable compression if unable to upgrade. ----- Patch: https://github.com/aio-libs/aiohttp/commit/4f7480e474cccc6a8cc2c92ad3f17a31dedf8232

    Recommended action: Upgrade to 3.14.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  17. Medium, CVSS 6.6PyPIAmendedPublished

    aiohttp: C HTTP Parser Bypasses max_line_size for Fragmented Lines

    CVE-2026-54277 · GHSA-63hw-fmq6-xxg2

    Affected
    • PyPI aiohttp <= 3.14.0
    Fixed in
    3.14.1· Vendor fix available
    Issue
    It is possible to bypass the maxlinesize check in parts of an HTTP request in the C parser. Impact If using the optimised C parser (the default in pre-built wheels), then an attacker may be able to send oversized lines through the HTTP parser and use an excessive amount of memory, potentially leading to DoS. ----- Patch: https://github.com/aio-libs/aiohttp/commit/5ab61bb4cd88f19b712f12c7c9295fe262bf804d

    Recommended action: Upgrade to 3.14.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  18. Medium, CVSS 6.3PyPIAmendedPublished

    aiohttp: DigestAuthMiddleware Applies Credentials to Cross-Origin Redirect Challenges

    CVE-2026-54276 · GHSA-hpj7-wq8m-9hgp

    Affected
    • PyPI aiohttp <= 3.14.0
    Fixed in
    3.14.1· Vendor fix available
    Issue
    DigestAuthMiddleware can send an authentication response after following a cross-origin redirect. Impact If the client follows a redirect (the default option) to an attacker controlled domain, the attacker may be able to extract the auth digest. This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse. Workaround Disable followredirects if this is a concern. ----- Patch: https://github.com/aio-libs/aiohttp/commit/38d16060037e1bfcd6d677abababa3c2a4bb58fa

    Recommended action: Upgrade to 3.14.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  19. Low, CVSS 1.3PyPIAmendedPublished

    aiohttp: Host-Only Cookies Become Domain Cookies After CookieJar Persistence

    CVE-2026-54279 · GHSA-2fqr-mr3j-6wp8

    Affected
    • PyPI aiohttp < 3.14.1
    Fixed in
    3.14.1· Vendor fix available
    Issue
    Host-only cookies that are saved with ``CookieJar.save()`` and then restored later with ``CookieJar.load()`` lose their host-only status. Impact Host-only cookies that have been loaded from disk may get sent to subdomains that previously should have been disallowed. ----- Patch: https://github.com/aio-libs/aiohttp/commit/a329a7aacad5284f087af36103aff778746da0f2

    Recommended action: Upgrade to 3.14.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  20. Low, CVSS 2.7PyPIAmendedPublished

    aiohttp: CRLF injection in multipart headers

    CVE-2026-50269 · GHSA-m6qw-4cw2-hm4m

    Affected
    • PyPI aiohttp <= 3.13.5
    Fixed in
    3.14.0· Vendor fix available
    Issue
    Attacker-controlled input included into multipart/payload headers can be used to modify a request to inject additional headers or similar. Impact In the unlikely situation that an application is passing user-controlled strings into MultipartWriter.append(headers=...) or Payload.headers, then an attacker may be able to modify the request to inject headers or change the contents of the request. Workaround Sanitise such user input. ----- Patch: https://github.com/aio-libs/aiohttp/commit/bf88077ebb14f4c29924b8e8904cba20c55c28b8

    Recommended action: Upgrade to 3.14.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  21. Medium, CVSS 6.6PyPIAmendedPublished

    AIOHTTP is vulnerable to cross-origin redirect with per-request cookies

    CVE-2026-47265 · GHSA-hg6j-4rv6-33pg

    Affected
    • PyPI aiohttp < 3.14.0
    Fixed in
    3.14.0· Vendor fix available
    Issue
    Cookies set with the cookies parameter on requests are sent after following a cross-origin redirect. Impact If a developer uses the cookies parameter on a per-request basis then sensitive data might be leaked to an attacker if they manage to control a redirect. Workaround If unable to upgrade, using a Cookie header in the headers parameter is not vulnerable. ----- Patch: https://github.com/aio-libs/aiohttp/commit/f54c40851b0d6c4bbdab97ba518a223adda32478

    Recommended action: Upgrade to 3.14.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  22. Medium, CVSS 6.4PyPIAmendedPublished

    AIOHTTP is Vulnerable to Deserialization of Untrusted Data

    CVE-2026-34993 · GHSA-jg22-mg44-37j8

    Affected
    • PyPI aiohttp < 3.14.0
    Fixed in
    3.14.0· Vendor fix available
    Issue
    Using CookieJar.load() with untrusted input may allow arbitrary code execution. Impact Most applications using this function will be doing so with the user's own data, so this is unlikely to affect many applications. Workaround If an application does allow attacker controlled files to be loaded, a workaround on older releases would be to sanitise the files before loading. ----- Patch: https://github.com/aio-libs/aiohttp/commit/dcf40f30637e8752c76781cf6703b5a236749a00

    Recommended action: Upgrade to 3.14.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  23. Medium, CVSS 6.3PyPIAmendedPublished

    AIOHTTP accepts duplicate Host headers

    CVE-2026-34525 · GHSA-c427-h43c-vf67

    Affected
    • PyPI aiohttp <= 3.13.3
    Fixed in
    3.13.4· Vendor fix available
    Issue
    Multiple Host headers were allowed in aiohttp. Impact Mostly this doesn't affect aiohttp security itself, but if a reverse proxy is applying security rules depending on the target Host, it is theoretically possible that the proxy and aiohttp could process different host names, possibly resulting in bypassing a security check on the proxy and getting a request processed by aiohttp in a privileged sub app when using Application.adddomain(). ----- Patch: https://github.com/aio-libs/aiohttp/commit/e00ca3cca92c465c7913c4beb763a72da9ed8349 Patch: https://github.com/aio-libs/aiohttp/commit/53e2e6fc58b89c6185be7820bd2c9f40216b3000

    Recommended action: Upgrade to 3.13.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  24. Low, CVSS 2.7PyPIAmendedPublished

    AIOHTTP's C parser (llhttp) accepts null bytes and control characters in response header values - header injection/security bypass

    CVE-2026-34520 · GHSA-63hf-3vf5-4wqf

    Affected
    • PyPI aiohttp <= 3.13.3
    Fixed in
    3.13.4· Vendor fix available
    Issue
    The C parser (the default for most installs) accepted null bytes and control characters in request headers. Impact An attacker could send header values that are interpreted differently than expected due to the presence of control characters. For example, request.url.origin() may return a different value than the raw Host header, or what a reverse proxy interpreted it as., potentially resulting in some kind of security bypass. ----- Patch: https://github.com/aio-libs/aiohttp/commit/9370b9714a7a56003cacd31a9b4ae16eab109ba4

    Recommended action: Upgrade to 3.13.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →
  25. Low, CVSS 2.7PyPIAmendedPublished

    AIOHTTP has HTTP response splitting via \r in reason phrase

    CVE-2026-34519 · GHSA-mwh4-6h8g-pg8w

    Affected
    • PyPI aiohttp <= 3.13.3
    Fixed in
    3.13.4· Vendor fix available
    Issue
    An attacker who controls the reason parameter when creating a Response may be able to inject extra headers or similar exploits. Impact In the unlikely situation that an application allows untrusted data to be used in the response's reason parameter, then an attacker could manipulate the response to send something different from what the developer intended. ----- Patch: https://github.com/aio-libs/aiohttp/commit/53b35a2f8869c37a133e60bf1a82a1c01642ba2b

    Recommended action: Upgrade to 3.13.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)github.com (2)Source checked Evidence →