Staging Environment: Content and features may be unstable or change without notice.
Search for packages
Package details: pkg:pypi/aiohttp@3.6.0a7
purl pkg:pypi/aiohttp@3.6.0a7
Next non-vulnerable version 3.9.2
Latest non-vulnerable version 3.13.3
Risk
Vulnerabilities affecting this package (8)
Vulnerability Summary Fixed by
VCID-1tcp-y3dq-z3dy
Aliases:
CVE-2023-47641
GHSA-xx9p-xxvh-7g8j
PYSEC-2023-247
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Affected versions of aiohttp have a security vulnerability regarding the inconsistent interpretation of the http protocol. HTTP/1.1 is a persistent protocol, if both Content-Length(CL) and Transfer-Encoding(TE) header values are present it can lead to incorrect interpretation of two entities that parse the HTTP and we can poison other sockets with this incorrect interpretation. A possible Proof-of-Concept (POC) would be a configuration with a reverse proxy(frontend) that accepts both CL and TE headers and aiohttp as backend. As aiohttp parses anything with chunked, we can pass a chunked123 as TE, the frontend entity will ignore this header and will parse Content-Length. The impact of this vulnerability is that it is possible to bypass any proxy rule, poisoning sockets to other users like passing Authentication Headers, also if it is present an Open Redirect an attacker could combine it to redirect random users to another website and log the request. This vulnerability has been addressed in release 3.8.0 of aiohttp. Users are advised to upgrade. There are no known workarounds for this vulnerability.
3.8.0
Affected by 6 other vulnerabilities.
VCID-drw3-v85t-hugt
Aliases:
CVE-2023-49081
GHSA-q3qx-c6g2-7pw2
PYSEC-2023-250
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Improper validation made it possible for an attacker to modify the HTTP request (e.g. to insert a new header) or create a new HTTP request if the attacker controls the HTTP version. The vulnerability only occurs if the attacker can control the HTTP version of the request. This issue has been patched in version 3.9.0.
3.9.0
Affected by 2 other vulnerabilities.
VCID-g18d-jmcm-gqg9
Aliases:
CVE-2021-21330
GHSA-v6wp-4m6f-gcjg
PYSEC-2021-76
open redirect
3.7.4
Affected by 7 other vulnerabilities.
VCID-j9gj-qgvy-rubd
Aliases:
CVE-2023-49082
GHSA-qvrw-v9rv-5rjx
PYSEC-2023-251
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. 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. The vulnerability occurs only if the attacker can control the HTTP method (GET, POST etc.) of the request. If the attacker can control the HTTP version of the request it will be able to modify the request (request smuggling). This issue has been patched in version 3.9.0.
3.9.0
Affected by 2 other vulnerabilities.
VCID-k8r5-847k-1fa5
Aliases:
CVE-2024-23334
GHSA-5h86-8mv2-jq9f
PYSEC-2024-24
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. 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 'follow_symlinks' can be used to determine whether to follow symbolic links outside the static root directory. When 'follow_symlinks' is set to True, there is no validation to check if reading a file 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. Disabling follow_symlinks and using a reverse proxy are encouraged mitigations. Version 3.9.2 fixes this issue.
3.9.2
Affected by 0 other vulnerabilities.
VCID-pk8d-1cv5-p7bf
Aliases:
CVE-2023-47627
GHSA-gfw2-4jvh-wgfg
PYSEC-2023-246
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. The HTTP parser in AIOHTTP has numerous problems with header parsing, which could lead to request smuggling. This parser is only used when AIOHTTP_NO_EXTENSIONS is enabled (or not using a prebuilt wheel). These bugs have been addressed in commit `d5c12ba89` which has been included in release version 3.8.6. Users are advised to upgrade. There are no known workarounds for these issues.
3.8.6
Affected by 4 other vulnerabilities.
VCID-pqxr-2nrx-pkcd
Aliases:
CVE-2023-37276
GHSA-45c4-8wx5-qw6w
PYSEC-2023-120
aiohttp.web.Application vulnerable to HTTP request smuggling via llhttp HTTP request parser ### Impact aiohttp v3.8.4 and earlier are [bundled with llhttp v6.0.6](https://github.com/aio-libs/aiohttp/blob/v3.8.4/.gitmodules) which is vulnerable to CVE-2023-30589. The vulnerable code is used by aiohttp for its HTTP request parser when available which is the default case when installing from a wheel. This vulnerability only affects users of aiohttp as an HTTP server (ie `aiohttp.Application`), you are not affected by this vulnerability if you are using aiohttp as an HTTP client library (ie `aiohttp.ClientSession`). ### Reproducer ```python from aiohttp import web async def example(request: web.Request): headers = dict(request.headers) body = await request.content.read() return web.Response(text=f"headers: {headers} body: {body}") app = web.Application() app.add_routes([web.post('/', example)]) web.run_app(app) ``` Sending a crafted HTTP request will cause the server to misinterpret one of the HTTP header values leading to HTTP request smuggling. ```console $ printf "POST / HTTP/1.1\r\nHost: localhost:8080\r\nX-Abc: \rxTransfer-Encoding: chunked\r\n\r\n1\r\nA\r\n0\r\n\r\n" \ | nc localhost 8080 Expected output: headers: {'Host': 'localhost:8080', 'X-Abc': '\rxTransfer-Encoding: chunked'} body: b'' Actual output (note that 'Transfer-Encoding: chunked' is an HTTP header now and body is treated differently) headers: {'Host': 'localhost:8080', 'X-Abc': '', 'Transfer-Encoding': 'chunked'} body: b'A' ``` ### Patches Upgrade to the latest version of aiohttp to resolve this vulnerability. It has been fixed in v3.8.5: [`pip install aiohttp >= 3.8.5`](https://pypi.org/project/aiohttp/3.8.5/) ### Workarounds If you aren't able to upgrade you can reinstall aiohttp using `AIOHTTP_NO_EXTENSIONS=1` as an environment variable to disable the llhttp HTTP request parser implementation. The pure Python implementation isn't vulnerable to request smuggling: ```console $ python -m pip uninstall --yes aiohttp $ AIOHTTP_NO_EXTENSIONS=1 python -m pip install --no-binary=aiohttp --no-cache aiohttp ``` ### References * https://nvd.nist.gov/vuln/detail/CVE-2023-30589 * https://hackerone.com/reports/2001873
3.8.5
Affected by 5 other vulnerabilities.
VCID-umna-tztw-akb7
Aliases:
CVE-2024-23829
GHSA-8qpw-xqxj-h4r2
PYSEC-2024-26
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. 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. Being more lenient than internet standards require could, depending on deployment environment, assist in request smuggling. The unhandled exception could cause excessive resource consumption on the application server and/or its logging facilities. This vulnerability exists due to an incomplete fix for CVE-2023-47627. Version 3.9.2 fixes this vulnerability.
3.9.2
Affected by 0 other vulnerabilities.
Vulnerabilities fixed by this package (0)
Vulnerability Summary Aliases
This package is not known to fix vulnerabilities.

Date Actor Action Vulnerability Source VulnerableCode Version
2026-05-30T20:33:53.890333+00:00 Pypa Importer Affected by VCID-k8r5-847k-1fa5 https://github.com/pypa/advisory-database/blob/main/vulns/aiohttp/PYSEC-2024-24.yaml 38.6.0
2026-05-30T20:33:53.259224+00:00 Pypa Importer Affected by VCID-umna-tztw-akb7 https://github.com/pypa/advisory-database/blob/main/vulns/aiohttp/PYSEC-2024-26.yaml 38.6.0
2026-05-30T20:33:24.371541+00:00 Pypa Importer Affected by VCID-drw3-v85t-hugt https://github.com/pypa/advisory-database/blob/main/vulns/aiohttp/PYSEC-2023-250.yaml 38.6.0
2026-05-30T20:33:23.354104+00:00 Pypa Importer Affected by VCID-j9gj-qgvy-rubd https://github.com/pypa/advisory-database/blob/main/vulns/aiohttp/PYSEC-2023-251.yaml 38.6.0
2026-05-30T20:33:20.210856+00:00 Pypa Importer Affected by VCID-pk8d-1cv5-p7bf https://github.com/pypa/advisory-database/blob/main/vulns/aiohttp/PYSEC-2023-246.yaml 38.6.0
2026-05-30T20:33:19.289336+00:00 Pypa Importer Affected by VCID-1tcp-y3dq-z3dy https://github.com/pypa/advisory-database/blob/main/vulns/aiohttp/PYSEC-2023-247.yaml 38.6.0
2026-05-30T20:32:15.658063+00:00 Pypa Importer Affected by VCID-pqxr-2nrx-pkcd https://github.com/pypa/advisory-database/blob/main/vulns/aiohttp/PYSEC-2023-120.yaml 38.6.0
2026-05-30T20:21:06.335471+00:00 Pypa Importer Affected by VCID-g18d-jmcm-gqg9 https://github.com/pypa/advisory-database/blob/main/vulns/aiohttp/PYSEC-2021-76.yaml 38.6.0