Skip to main content
VulnerabilityPublished Updated

CVE-2023-47641: aio-libs aiohttp · HTTP Request/Response Smuggling

Affects aio-libs aiohttpSource CVE Database V5

0

Not known to be exploited · CVSS 3.4 Low : upgrade to 3.8.0 when convenient.

Data as of 26 Oct 2026, 09:15 UTC

CVSS 3.1 base score
3.4Low
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.8% chance of exploitation in 30 days – higher than 57% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 3.8.0
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:N/A:N

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 14 Nov 2023

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

Upgrade aio-libs aiohttp to 3.8.0.

Affected software

ProductAffectedFixed in
PyPIaiohttppkg:pypi/aiohttpOther threatsAffected
  • <3.8.0
Fixed in
  • 3.8.0

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

The primary mitigation is to upgrade all aiohttp instances to version 3.8.0 or later, where the vulnerability has been fixed. Since no known workarounds exist, patching is critical. Organizations should audit their infrastructure to identify aiohttp usage, particularly in backend services behind reverse proxies that accept both Content-Length and Transfer-Encoding headers. Configuration hardening of reverse proxies to reject or normalize requests containing both headers can reduce risk. Implement strict input validation and header sanitization at the proxy level to prevent malformed TE headers. Monitoring and logging HTTP request anomalies can help detect attempts to exploit request smuggling. Additionally, review and remediate any open redirect vulnerabilities that could be chained with this issue. Employing Web Application Firewalls (WAFs) with updated signatures to detect request smuggling attempts may provide additional protection. Finally, conduct security testing, including fuzzing and penetration testing, focusing on HTTP header parsing inconsistencies in the affected environments.

Description

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.

References

Community reviews

Loading reviews…