GHSA-xx9p-xxvh-7g8j · Severity: low · Ecosystem: pip — Aiohttp has inconsistent interpretation of `Content-Length` vs. `Transfer-Encoding` differing in C and Python fallbacks
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.
Conclusion & alert: CVE-2023-47641 is rated Exploit Available (50/100): CVSS Low severity, with medium exploitation likelihood (EPSS 0.36%). Core evidence: 1 public exploit reference(s) are indexed (Exploit-DB). Mandatory action: Public exploits are available—assess exposure, apply mitigations, and prioritize patching.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
| EDB-ID | Source | Kind | Published | Link |
|---|---|---|---|---|
| — | nvd_ref | exploit_tag | Exploit-DB ↗ |
EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).
| # | Date | Old EPSS score | New EPSS score | Delta (New - Old) |
|---|---|---|---|---|
| 1 | 2026-04-25 | 0.32% | 0.36% | +0.04% |
| 2 | 2026-03-15 | 0.16% | 0.32% | +0.16% |
| 3 | 2025-11-21 | — | 0.16% | — |
Full EPSS history (11 records total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 3.4 | 3.1 | LOW |
|
1.6 | 1.4 | [email protected] |
| 6.5 | 3.1 | MEDIUM |
|
3.9 | 2.5 | [email protected] |
GHSA-xx9p-xxvh-7g8j · Severity: low · Ecosystem: pip — Aiohttp has inconsistent interpretation of `Content-Length` vs. `Transfer-Encoding` differing in C and Python fallbacks
| vendor | priority | summary | link |
|---|---|---|---|
debian
|
not yet assigned | CVE-2023-47641 not yet assigned priority: Debian including 1 source packages (python-aiohttp), 5 status rows across 5 suites (bookworm, bullseye, forky, sid, trixie): resolved 5. | https://security-tracker.debian.org/tracker/CVE-2023-47641 |
gentoo
|
normal | CVE-2023-47641: 1 GLSA(s) (202408-11), 1 atom(s) (dev-python/aiohttp); latest impact normal. | https://bugs.gentoo.org/buglist.cgi?quicksearch=CVE-2023-47641 |
redhat
|
low | — | https://access.redhat.com/security/cve/CVE-2023-47641 |
suse
|
medium | CVE-2023-47641 severity moderate: SUSE including 11 source package names (python-aiohttp, python-aiohttp-doc-3.6.0-150100.3.12.1, …), 86 product×package rows across 74 product lines (Image SLES15-SP3-BYOS-Azure, Image SLES15-SP3-HPC-BYOS-Azure, … (74 product lines)): Fixed 84, Known Not Affected 2. | https://www.suse.com/security/cve/CVE-2023-47641/ |
ubuntu
|
medium | CVE-2023-47641 medium priority: Ubuntu including 1 source packages (python-aiohttp), 12 status rows across 12 suites (bionic, focal, jammy, lunar, mantic, noble, oracular, plucky, questing, trusty, upstream, xenial): not-affected 7, needs-triage 3, ignored 1, released 1. | https://ubuntu.com/security/CVE-2023-47641 |