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. Low, CVSS 2.7PyPIAmendedPublished

    AIOHTTP leaks Cookie and Proxy-Authorization headers on cross-origin redirect

    CVE-2026-34518 · GHSA-966j-vmvw-g2g9

    Affected
    • PyPI aiohttp <= 3.13.3
    Fixed in
    3.13.4· Vendor fix available
    Issue
    When following redirects to a different origin, aiohttp drops the Authorization header, but retains the Cookie and Proxy-Authorization headers. Impact The Cookie and Proxy-Authorizations headers could contain sensitive information which may be leaked to an unintended party after following a redirect. ----- Patch: https://github.com/aio-libs/aiohttp/commit/5351c980dcec7ad385730efdf4e1f4338b24fdb6

    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 →
  2. Low, CVSS 2.7PyPIAmendedPublished

    AIOHTTP has late size enforcement for non-file multipart fields causes memory DoS

    CVE-2026-34517 · GHSA-3wq7-rqq7-wx6j

    Affected
    • PyPI aiohttp <= 3.13.3
    Fixed in
    3.13.4· Vendor fix available
    Issue
    For some multipart form fields, aiohttp read the entire field into memory before checking clientmaxsize. Impact If an application uses Request.post() an attacker can send a specially crafted multipart request to force significant temporary memory allocation even when the request is ultimately rejected. ----- Patch: https://github.com/aio-libs/aiohttp/commit/cbb774f38330563422ca0c413a71021d7b944145

    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 →
  3. Medium, CVSS 6.6PyPIAmendedPublished

    AIOHTTP has a Multipart Header Size Bypass

    CVE-2026-34516 · GHSA-m5qp-6w8w-w647

    Affected
    • PyPI aiohttp <= 3.13.3
    Fixed in
    3.13.4· Vendor fix available
    Issue
    A response with an excessive number of multipart headers may be allowed to use more memory than intended, potentially allowing a DoS vulnerability. Impact Multipart headers were not subject to the same size restrictions in place for normal headers, potentially allowing substantially more data to be loaded into memory than intended. However, other restrictions in place limit the impact of this vulnerability. ----- Patch: https://github.com/aio-libs/aiohttp/commit/8a74257b3804c9aac0bf644af93070f68f6c5a6f

    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 →
  4. Medium, CVSS 6.6PyPIAmendedPublished

    AIOHTTP affected by UNC SSRF/NTLMv2 Credential Theft/Local File Read in static resource handler on Windows

    CVE-2026-34515 · GHSA-p998-jp59-783m

    Affected
    • PyPI aiohttp <= 3.13.3
    Fixed in
    3.13.4· Vendor fix available
    Issue
    On Windows the static resource handler may expose information about a NTLMv2 remote path. Impact If an application is running on Windows, and using aiohttp's static resource handler (not recommended in production), then it may be possible for an attacker to extract the hash from an NTLMv2 path and then extract the user's credentials from there. ----- Patch: https://github.com/aio-libs/aiohttp/commit/0ae2aa076c84573df83fc1fdc39eec0f5862fe3d

    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 →
  5. Low, CVSS 2.7PyPIAmendedPublished

    AIOHTTP has CRLF injection through multipart part content type header construction

    CVE-2026-34514 · GHSA-2vrm-gr82-f7m5

    Affected
    • PyPI aiohttp <= 3.13.3
    Fixed in
    3.13.4· Vendor fix available
    Issue
    An attacker who controls the contenttype parameter in aiohttp could use this to inject extra headers or similar exploits. Impact If an application allows untrusted data to be used for the multipart contenttype parameter when constructing a request, an attacker may be able to manipulate the request to send something other than what the developer intended. ----- Patch: https://github.com/aio-libs/aiohttp/commit/9a6ada97e2c6cf1ce31727c6c9fcea17c21f6f06

    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 →
  6. Low, CVSS 2.7PyPIAmendedPublished

    AIOHTTP Affected by Denial of Service (DoS) via Unbounded DNS Cache in TCPConnector

    CVE-2026-34513 · GHSA-hcc4-c3v8-rx92

    Affected
    • PyPI aiohttp <= 3.13.3
    Fixed in
    3.13.4· Vendor fix available
    Issue
    An unbounded DNS cache could result in excessive memory usage possibly resulting in a DoS situation. Impact If an application makes requests to a very large number of hosts, this could cause the DNS cache to continue growing and slowly use excessive amounts of memory. ----- Patch: https://github.com/aio-libs/aiohttp/commit/c4d77c3533122be353b8afca8e8675e3b4cbda98

    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 →
  7. Medium, CVSS 6.9PyPIAmendedPublished

    aiohttp allows unlimited trailer headers, leading to possible uncapped memory usage

    CVE-2026-22815 · GHSA-w2fm-2cpv-w7v5

    Affected
    • PyPI aiohttp <= 3.13.3
    Fixed in
    3.13.4· Vendor fix available
    Issue
    Insufficient restrictions in header/trailer handling could cause uncapped memory usage. Impact An application could cause memory exhaustion when receiving an attacker controlled request or response. A vulnerable web application could mitigate these risks with a typical reverse proxy configuration. ----- Patch: https://github.com/aio-libs/aiohttp/commit/0c2e9da51126238a421568eb7c5b53e5b5d17b36

    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 →
  8. Low, CVSS 2.7PyPIAmendedPublished

    AIOHTTP Vulnerable to Cookie Parser Warning Storm

    CVE-2025-69230 · GHSA-fh55-r93g-j68g

    Affected
    • PyPI aiohttp <= 3.13.2
    Fixed in
    3.13.3· Vendor fix available
    Issue
    Reading multiple invalid cookies can lead to a logging storm. Impact If the cookies attribute is accessed in an application, then an attacker may be able to trigger a storm of warning-level logs using a specially crafted Cookie header. ---- Patch: https://github.com/aio-libs/aiohttp/commit/64629a0834f94e46d9881f4e99c41a137e1f3326

    Recommended action: Upgrade to 3.13.3 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 →
  9. Medium, CVSS 6.6PyPIAmendedPublished

    AIOHTTP vulnerable to DoS through chunked messages

    CVE-2025-69229 · GHSA-g84x-mcqj-x9qq

    Affected
    • PyPI aiohttp <= 3.13.2
    Fixed in
    3.13.3· Vendor fix available
    Issue
    Handling of chunked messages can result in excessive blocking CPU usage when receiving a large number of chunks. Impact If an application makes use of the request.read() method in an endpoint, it may be possible for an attacker to cause the server to spend a moderate amount of blocking CPU time (e.g. 1 second) while processing the request. This could potentially lead to DoS as the server would be unable to handle other requests during that time. ----- Patch: https://github.com/aio-libs/aiohttp/commit/dc3170b56904bdf814228fae70a5501a42a6c712 Patch: https://github.com/aio-libs/aiohttp/commit/4ed97a4e46eaf61bd0f05063245f613469700229

    Recommended action: Upgrade to 3.13.3 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 →
  10. Medium, CVSS 6.6PyPIAmendedPublished

    AIOHTTP vulnerable to denial of service through large payloads

    CVE-2025-69228 · GHSA-6jhg-hg63-jvvf

    Affected
    • PyPI aiohttp <= 3.13.2
    Fixed in
    3.13.3· Vendor fix available
    Issue
    A request can be crafted in such a way that an aiohttp server's memory fills up uncontrollably during processing. Impact If an application includes a handler that uses the Request.post() method, an attacker may be able to freeze the server by exhausting the memory. ----- Patch: https://github.com/aio-libs/aiohttp/commit/b7dbd35375aedbcd712cbae8ad513d56d11cce60

    Recommended action: Upgrade to 3.13.3 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 →
  11. Medium, CVSS 6.6PyPIAmendedPublished

    AIOHTTP vulnerable to DoS when bypassing asserts

    CVE-2025-69227 · GHSA-jj3x-wxrx-4x23

    Affected
    • PyPI aiohttp <= 3.13.2
    Fixed in
    3.13.3· Vendor fix available
    Issue
    When assert statements are bypassed, an infinite loop can occur, resulting in a DoS attack when processing a POST body. Impact If optimisations are enabled (-O or PYTHONOPTIMIZE=1), and the application includes a handler that uses the Request.post() method, then an attacker may be able to execute a DoS attack with a specially crafted message. ------ Patch: https://github.com/aio-libs/aiohttp/commit/bc1319ec3cbff9438a758951a30907b072561259

    Recommended action: Upgrade to 3.13.3 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 →
  12. Low, CVSS 2.7PyPIAmendedPublished

    AIOHTTP vulnerable to brute-force leak of internal static file path components

    CVE-2025-69226 · GHSA-54jq-c3m8-4m76

    Affected
    • PyPI aiohttp <= 3.13.2
    Fixed in
    3.13.3· Vendor fix available
    Issue
    Path normalization for static files prevents path traversal, but opens up the ability for an attacker to ascertain the existence of absolute path components. Impact If an application uses web.static() (not recommended for production deployments), it may be possible for an attacker to ascertain the existence of path components. ------ Patch: https://github.com/aio-libs/aiohttp/commit/f2a86fd5ac0383000d1715afddfa704413f0711e

    Recommended action: Upgrade to 3.13.3 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 has unicode match groups in regexes for ASCII protocol elements

    CVE-2025-69225 · GHSA-mqqc-3gqh-h2x8

    Affected
    • PyPI aiohttp <= 3.13.2
    Fixed in
    3.13.3· Vendor fix available
    Issue
    The parser allows non-ASCII decimals to be present in the Range header. Impact There is no known impact, but there is the possibility that there's a method to exploit a request smuggling vulnerability. ---- Patch: https://github.com/aio-libs/aiohttp/commit/c7b7a044f88c71cefda95ec75cdcfaa4792b3b96

    Recommended action: Upgrade to 3.13.3 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 2.7PyPIAmendedPublished

    AIOHTTP's unicode processing of header values could cause parsing discrepancies

    CVE-2025-69224 · GHSA-69f9-5gxw-wvc2

    Affected
    • PyPI aiohttp <= 3.13.2
    Fixed in
    3.13.3· Vendor fix available
    Issue
    The Python HTTP parser may allow a request smuggling attack with the presence of non-ASCII characters. Impact If a pure Python version of aiohttp is installed (i.e. without the usual C extensions) or AIOHTTPNOEXTENSIONS is enabled, then an attacker may be able to execute a request smuggling attack to bypass certain firewalls or proxy protections. ------ Patch: https://github.com/aio-libs/aiohttp/commit/32677f2adfd907420c078dda6b79225c6f4ebce0

    Recommended action: Upgrade to 3.13.3 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. High, CVSS 7.5PyPIAmendedPublished

    AIOHTTP's HTTP Parser auto_decompress feature is vulnerable to zip bomb

    CVE-2025-69223 · GHSA-6mq8-rvhq-8wgg

    Affected
    • PyPI aiohttp <= 3.13.2
    Fixed in
    3.13.3· Vendor fix available
    Issue
    A zip bomb can be used to execute a DoS against the aiohttp server. Impact An attacker may be able to send a compressed request that when decompressed by aiohttp could exhaust the host's memory. ------ Patch: https://github.com/aio-libs/aiohttp/commit/2b920c39002cee0ec5b402581779bbaaf7c9138a

    Recommended action: Upgrade to 3.13.3 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. Low, CVSS 1.7PyPIAmendedPublished

    AIOHTTP is vulnerable to HTTP Request/Response Smuggling through incorrect parsing of chunked trailer sections

    CVE-2025-53643 · GHSA-9548-qrrj-x5pj

    Affected
    • PyPI aiohttp < 3.12.14
    Fixed in
    3.12.14· Vendor fix available
    Issue
    The Python parser is vulnerable to a request smuggling vulnerability due to not parsing trailer sections of an HTTP request. Impact If a pure Python version of aiohttp is installed (i.e. without the usual C extensions) or AIOHTTPNOEXTENSIONS is enabled, then an attacker may be able to execute a request smuggling attack to bypass certain firewalls or proxy protections. ---- Patch: https://github.com/aio-libs/aiohttp/commit/e8d774f635dc6d1cd3174d0e38891da5de0e2b6a

    Recommended action: Upgrade to 3.12.14 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.3PyPIAmendedPublished

    aiohttp allows request smuggling due to incorrect parsing of chunk extensions

    CVE-2024-52304 · GHSA-8495-4g3g-x7pr

    Affected
    • PyPI aiohttp <= 3.10.10
    Fixed in
    3.10.11· Vendor fix available
    Issue
    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 AIOHTTPNOEXTENSIONS is enabled, then an attacker may be able to execute a request smuggling attack to bypass certain firewalls or proxy protections. ----- Patch: https://github.com/aio-libs/aiohttp/commit/259edc369075de63e6f3a4eaade058c62af0df71

    Recommended action: Upgrade to 3.10.11 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.9PyPIAmendedPublished

    aiohttp has a memory leak when middleware is enabled when requesting a resource with a non-allowed method

    CVE-2024-52303 · GHSA-27mf-ghqm-j3j8

    Affected
    • PyPI aiohttp >= 3.10.6, < 3.10.11
    Fixed in
    3.10.11· Vendor fix available
    Issue
    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: https://github.com/aio-libs/aiohttp/commit/bc15db61615079d1b6327ba42c682f758fa96936

    Recommended action: Upgrade to 3.10.11 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. Medium, CVSS 6.3PyPIAmendedPublished

    In aiohttp, compressed files as symlinks are not protected from path traversal

    CVE-2024-42367 · GHSA-jwhx-xcg6-8xhj

    Affected
    • PyPI aiohttp >= 3.10.0b1, < 3.10.2
    Fixed in
    3.10.2· Vendor fix available
    Issue
    Static routes which contain files with compressed variants (.gz or .br extension) were vulnerable to path traversal outside the root directory if those variants are symbolic links. Details The server protects static routes from path traversal outside the root directory when followsymlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing Path.stat() and Path.open() to send the file. Impact Servers with static routes that contain compressed variants as symbolic links, pointing outside the root directory, or that permit users to upload or create such links, are impacted. ---- Patch: https://github.com/aio-libs/aiohttp/pull/8653/files

    Recommended action: Upgrade to 3.10.2 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. High, CVSS 7.5PyPIAmendedPublished

    aiohttp vulnerable to Denial of Service when trying to parse malformed POST requests

    CVE-2024-30251 · GHSA-5m98-qgg9-wh84

    Affected
    • PyPI aiohttp < 3.9.4
    Fixed in
    3.9.4· Vendor fix available
    Issue
    An attacker can send a specially crafted POST (multipart/form-data) request. When the aiohttp server processes it, the server will enter an infinite loop and be unable to process any further requests. Impact An attacker can stop the application from serving requests after sending a single request. ------- For anyone needing to patch older versions of aiohttp, the minimum diff needed to resolve the issue is (located in readchunkfromlength()): This does however introduce some very minor issues with handling form data. So, if possible, it would be recommended to also backport the changes in: https://github.com/aio-libs/aiohttp/commit/cebe526b9c34dc3a3da9140409db63014bc4cf19 https://github.com/aio-libs/aiohttp/commit/7eecdff163ccf029fbb1ddc9de4169d4aaeb6597 https://github.com/aio-libs/aiohttp/commit/f21c6f2ca512a026ce7f0f6c6311f62d6a638866

    Recommended action: Upgrade to 3.9.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 →
  21. Medium, CVSS 6.1PyPIAmendedPublished

    aiohttp Cross-site Scripting vulnerability on index pages for static file handling

    CVE-2024-27306 · GHSA-7gpw-8wmc-pm8g

    Affected
    • PyPI aiohttp < 3.9.4
    Fixed in
    3.9.4· Vendor fix available
    Issue
    A XSS vulnerability exists on index pages for static file handling. Details When using web.static(..., showindex=True), the resulting index pages do not escape file names. If users can upload files with arbitrary filenames to the static directory, the server is vulnerable to XSS attacks. Workaround We have always recommended using a reverse proxy server (e.g. nginx) for serving static files. Users following the recommendation are unaffected. Other users can disable showindex if unable to upgrade. ----- Patch: https://github.com/aio-libs/aiohttp/pull/8319/files

    Recommended action: Upgrade to 3.9.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 →
  22. High, CVSS 8.2PyPIAmendedPublished

    aiohttp is vulnerable to directory traversal

    CVE-2024-23334 · GHSA-5h86-8mv2-jq9f

    Affected
    • PyPI aiohttp >= 1.0.5, < 3.9.2
    Fixed in
    3.9.2· Vendor fix available
    Issue
    Improperly configuring static resource resolution in aiohttp when used as a web server can result in the unauthorized reading of arbitrary files on the system. Details When using aiohttp as a web server and configuring static routes, it is necessary to specify the root path for static files. Additionally, the option 'followsymlinks' can be used to determine whether to follow symbolic links outside the static root directory. When 'followsymlinks' is set to True, there is no validation to check if a given file path is within the root directory.This can lead to directory traversal vulnerabilities, resulting in unauthorized access to arbitrary files on the system, even when symlinks are not present. i.e. An application is only vulnerable with setup code like: Impact This is a directory traversal vulnerability with CWE ID 22. When using aiohttp as a web server and enabling static resource resolution with followsymlinks set to True, it can lead to this vulnerability. This…

    Recommended action: Upgrade to 3.9.2 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.9PyPIAmendedPublished

    aiohttp's HTTP parser (the python one, not llhttp) still overly lenient about separators

    CVE-2024-23829 · GHSA-8qpw-xqxj-h4r2

    Affected
    • PyPI aiohttp < 3.9.2
    Fixed in
    3.9.2· Vendor fix available
    Issue
    Security-sensitive parts of the Python HTTP parser retained minor differences in allowable character sets, that must trigger error handling to robustly match frame boundaries of proxies in order to protect against injection of additional requests. Additionally, validation could trigger exceptions that were not handled consistently with processing of other malformed input. Details These problems are rooted in pattern matching protocol elements, previously improved by PR #3235 and GHSA-gfw2-4jvh-wgfg: 1. The expression HTTP/(\d).(\d) lacked another backslash to clarify that the separator should be a literal dot, not just any Unicode code point (result: HTTP/(\d)\.(\d)). 2. The HTTP version was permitting Unicode digits, where only ASCII digits are standards-compliant. 3. Distinct regular expressions for validating HTTP Method and Header field names were used - though both should (at least) apply the common restrictions of rfc9110 token. PoC GET / HTTP/1ö1 GET / HTTP/1.𝟙 GET/:…

    Recommended action: Upgrade to 3.9.2 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. Medium, CVSS 6.9PyPIAmendedPublished

    aiohttp's ClientSession is vulnerable to CRLF injection via version

    CVE-2023-49081 · GHSA-q3qx-c6g2-7pw2

    Affected
    • PyPI aiohttp < 3.9.0
    Fixed in
    3.9.0· Vendor fix available
    Issue
    Improper validation make it possible for an attacker to modify the HTTP request (e.g. to insert a new header) or even create a new HTTP request if the attacker controls the HTTP version. Details The vulnerability only occurs if the attacker can control the HTTP version of the request (including its type). For example if an unvalidated JSON value is used as a version and the attacker is then able to pass an array as the version parameter. Furthermore, the vulnerability only occurs when the Connection header is passed to the headers parameter. At this point, the library will use the parsed value to create the request. If a list is passed, then it bypasses validation and it is possible to perform CRLF injection. PoC The POC below shows an example of providing an unvalidated array as a version: https://gist.github.com/jnovikov/184afb593d9c2114d77f508e0ccd508e Impact CRLF injection leading to Request Smuggling. Workaround If these specific conditions are met and you are unable to…

    Recommended action: Upgrade to 3.9.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 →
  25. Medium, CVSS 6.9PyPIAmendedPublished

    aiohttp's ClientSession is vulnerable to CRLF injection via method

    CVE-2023-49082 · GHSA-qvrw-v9rv-5rjx

    Affected
    • PyPI aiohttp < 3.9.0
    Fixed in
    3.9.0· Vendor fix available
    Issue
    Improper validation makes it possible for an attacker to modify the HTTP request (e.g. insert a new header) or even create a new HTTP request if the attacker controls the HTTP method. Details The vulnerability occurs only if the attacker can control the HTTP method (GET, POST etc.) of the request. Previous releases performed no validation on the provided value. If an attacker controls the HTTP method it will be used as is and can lead to HTTP request smuggling. PoC A minimal example can be found here: https://gist.github.com/jnovikov/7f411ae9fe6a9a7804cf162a3bdbb44b Impact If the attacker can control the HTTP version of the request it will be able to modify the request (request smuggling). Workaround If unable to upgrade and using user-provided values for the request method, perform manual validation of the user value (e.g. by restricting it to a few known values like GET, POST etc.). Patch: https://github.com/aio-libs/aiohttp/pull/7806/files

    Recommended action: Upgrade to 3.9.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 →