CVE-2026-111066
HighCVSS 8.2Exploitation Probability (EPSS)
Low risk31th percentile - higher than 31% of all known CVEs
Summary
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. From 2.0.0 until 3.14.4, multipart request processing can retain an unbounded number of open file descriptors. An unauthenticated attacker can consequently exhaust file descriptors with specially crafted multipart requests when a handler uses Request.post(). This issue is fixed in version 3.14.4.
Risk Assessment
An unauthenticated attacker can exhaust server file descriptors, potentially leading to denial of service and application unavailability. The risk affects AIOHTTP applications versions 2.0.0-3.14.4 using Request.post().
Recommendation
Update AIOHTTP to version 3.14.4 or later. Consider limiting the number of concurrent multipart requests and monitoring file descriptor usage.
Other vulnerabilities in AIOHTTP
See all- GHSA-2g87-pp6c-29x5High
Multiple cases were found in aiohttp where excessive or unbounded memory use, or excessive CPU consumption, can be triggered by attacker-controlled requests. An attacker could cause resource exhaustion through specially crafted requests.
- CVE-2026-111750Medium
In aiohttp before 3.14.4, the pure Python parser accepts ambiguous HTTP request framing. An unauthenticated attacker can smuggle requests when an application runs without a standard wheel (e.g., with AIOHTTP_NO_EXTENSIONS) and an intermediary interprets the framing differently.
- CVE-2026-111749Low
In AIOHTTP prior to 3.14.4, Host-Only scope on an existing parent-domain cookie can be removed by a subdomain. A user accessing an untrusted subdomain may have host-only protections stripped from cookies.
- CVE-2026-111748Medium
In aiohttp before 3.14.4, an attacker can send an absolute-form request causing Request.scheme to use attacker-controlled request-target scheme data instead of the connection protocol. Applications using Request.scheme for security decisions can be tricked about whether the connection is encrypted.
- CVE-2026-111065Medium
In aiohttp before 3.14.4, Max-Age processing can overflow and skip closing a connection. An attacker can temporarily exhaust the connection pool until garbage collection resolves the connections.
- CVE-2026-111064High
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.4, keepalive timeout handling is absent during the initial portion of a request. An attacker can keep an idle connection open indefinitely before sending any request data, consuming server connection capacity. This issue is fixed in version 3.14.4.
- CVE-2026-111063Medium
In aiohttp before 3.14.4, the Secure attribute for a shared cookie is not enforced. An attacker can cause a shared cookie marked Secure to be sent with an unencrypted request.
- CVE-2026-69244High
AIOHTTP, an asynchronous HTTP client/server framework for Python, prior to version 3.14.3, has an out-of-bounds heap read vulnerability in the C response parser. While building an error message for a malformed response, an out-of-bounds read can occur, leading to DoS in the client. Fixed in version 3.14.3.
- CVE-2026-69243Medium
AIOHTTP prior to version 3.14.2 contains a request smuggling vulnerability related to WebSocket upgrades. A WebSocket upgrade request with a body could cause the parser to switch protocols before the complete request body was received, leaving trailing bytes to be handled as upgraded-protocol or pipelined data rather than normal HTTP body data.
- CVE-2026-59881Medium
AIOHTTP before 3.14.2 in the WebSocket client accepts and decompresses frames with the RSV1 bit set even without negotiating the permessage-deflate extension. A malicious server can cause unexpected CPU and memory consumption.
Original NVD description (English source)
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. From 2.0.0 until 3.14.4, multipart request processing can retain an unbounded number of open file descriptors. An unauthenticated attacker can consequently exhaust file descriptors with specially crafted multipart requests when a handler uses Request.post(). This issue is fixed in version 3.14.4.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

