CVE-2023-47641
Fixed in a distro release EPSS <1%CVSS 3.4
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.
Products: aio-libs aiohttp
Fixed upstream
| Ecosystem | Package | Fixed in |
|---|---|---|
| PyPI | aiohttp | 3.8.0 |
| PyPI | aiohttp | f016f0680e4ace6742b03a70cb0382ce86abe371 |
Distro releases
| Release | Package | Fixed in |
|---|---|---|
| Debian 11 | python-aiohttp | 3.7.4-1+deb11u1 |
| Debian 12 | python-aiohttp | 3.8.1-1 |
| Debian 13 | python-aiohttp | 3.8.1-1 |
| Debian 14 | python-aiohttp | 3.8.1-1 |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | python-aiohttp | 3.9.3-150400.10.14.1 |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | python-aiohttp | 3.9.3-150400.10.14.1 |
| SUSE Linux Enterprise Module for Public Cloud 15 SP1 | python-aiohttp | 3.6.0-150100.3.12.1 |
| SUSE Linux Enterprise Module for Public Cloud 15 SP2 | python-aiohttp | 3.6.0-150100.3.12.1 |
| SUSE Linux Enterprise Module for Public Cloud 15 SP3 | python-aiohttp | 3.6.0-150100.3.12.1 |
| SUSE Linux Enterprise Module for Public Cloud 15 SP4 | python-aiohttp | 3.6.0-150100.3.12.1 |
| SUSE Linux Enterprise Module for Public Cloud 15 SP5 | python-aiohttp | 3.6.0-150100.3.12.1 |
| SUSE Linux Enterprise Module for Python 3 15 SP5 | python-aiohttp | 3.9.3-150400.10.14.1 |
| SUSE Linux Enterprise Server 15 SP4-LTSS | python-aiohttp | 3.9.3-150400.10.14.1 |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | python-aiohttp | 3.9.3-150400.10.14.1 |
| Ubuntu Pro 16.04 LTS | python-aiohttp | no fix |
| Ubuntu Pro 18.04 LTS | python-aiohttp | no fix |
| Ubuntu Pro 20.04 LTS | python-aiohttp | no fix |
| openSUSE Leap 15.4 | python-aiohttp | 3.6.0-150100.3.12.1 |
| openSUSE Leap 15.5 | python-aiohttp | 3.6.0-150100.3.12.1 |
| openSUSE Leap 15.5 | python-aiohttp | 3.9.3-150400.10.14.1 |
| openSUSE Tumbleweed | python-aiohttp | 3.9.3-2.1 |
| openSUSE Tumbleweed | python-aiohttp | 3.14.3-1.1 |