7.5 CVE-2024-52304

Enriched by CISA Patch
 

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Prior to version 3.10.11, the Python parser parses newlines in chunk extensions incorrectly which can lead to request smuggling vulnerabilities under certain conditions. If a pure Python version of aiohttp is installed (i.e. without the usual C extensions) or `AIOHTTP_NO_EXTENSIONS` is enabled, then an attacker may be able to execute a request smuggling attack to bypass certain firewalls or proxy protections. Version 3.10.11 fixes the issue.
https://nvd.nist.gov/vuln/detail/CVE-2024-52304

Categories

CWE-444 : Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
The product acts as an intermediary HTTP agent(such as a proxy or firewall) in the data flow between twoentities such as a client and server, but it does notinterpret malformed HTTP requests or responses in ways thatare consistent with how the messages will be processed bythose entities that are at the ultimate destination. Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.) Use a web server that employs a strict HTTP parsing procedure, such as Apache [REF-433]. Use only SSL communication. Terminate the client session after each request. Turn all pages to non-cacheable. SSL/TLS-capable proxy allows HTTP smuggling when used in tandem with HTTP/1.0 services, due to inconsistent interpretation and input sanitization of HTTP messages within the body of another message Chain: caching proxy server has improper input validation (CWE-20) of headers, allowing HTTP response smuggling (CWE-444) using an "LF line ending" Node.js platform allows request smuggling via two Transfer-Encoding headers Web servers allow request smuggling via inconsistent HTTP headers. HTTP server allows request smuggling with both a "Transfer-Encoding: chunked" header and a Content-Length header HTTP server allows request smuggling with both a "Transfer-Encoding: chunked" header and a Content-Length header

References


 

AFFECTED (from MITRE)


Vendor Product Versions
aio-libs aiohttp
  • < 3.10.11 [affected]
© 2022 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation.

CPE

cpe start end
Configuration 1
cpe:2.3:a:aiohttp:aiohttp:*:*:*:*:*:*:*:* < 3.10.11


REMEDIATION


Patch

Url
https://github.com/aio-libs/aiohttp/commit/259edc369075de63e6f3a4eaade058c62a...


EXPLOITS


Exploit-db.com

id description date
No known exploits

POC Github

Url
No known exploits

Other Nist (github, ...)

Url
No known exploits


CAPEC


Common Attack Pattern Enumerations and Classifications

id description severity
273 HTTP Response Smuggling
High
33 HTTP Request Smuggling
High