Skip to main content

aiohttp CVE-2026-69243

| EUVDEUVD-2026-52436 MEDIUM
HTTP Request/Response Smuggling (CWE-444)
2026-08-03 GitHub_M GHSA-mfx4-hv73-q22v
6.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send WebSocket upgrade request with body
  2. Delivery
    Parser switches protocol before body is consumed
  3. Exploit
    Trailing body bytes re-parsed as pipelined HTTP request
  4. Execution
    Injected request processed without normal HTTP boundary enforcement
  5. Impact
    Bypass access controls or poison proxy connection

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service HTTP request consistency
Exploitation Conditions

Exploitation requires that the target be using aiohttp's server-side component (not the client). The attacker must send a WebSocket upgrade request (Connection: Upgrade, Upgrade: websocket) that also includes a request body (via Content-Length with a value greater than zero, or Transfer-Encoding: chunked), which is an edge case not typical of standard WebSocket handshakes. The CVSS vector confirms no authentication or special privileges are required (PR:N), and no user interaction is needed (UI:N). Exploitation is limited to aiohttp server deployments on versions 3.14.1 and earlier; client-only usage is not affected. The AC:H rating reflects that the attacker must deliberately craft this non-standard upgrade request with a body, and the actual downstream impact depends on the server's routing architecture - standalone aiohttp deployments may exhibit lower real-world impact than those sitting behind a shared reverse proxy where connection-level smuggling could poison shared state.

Impact

The CVSS 4.0 vector (AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N) gives a base score of 6.3. AC:H accurately reflects that triggering the vulnerability requires crafting a WebSocket upgrade request that also carries a body - an unusual but well-defined HTTP construction. The integrity impact is Low (VI:L), consistent with request smuggling's ability to influence routing and boundary parsing rather than directly overwrite data. No confidentiality or availability impact is assessed, which aligns with classical smuggling primitives. No EPSS data was provided in the input, so exploitation probability is inferred from available signals only: the GHSA advisory explicitly states 'AIOHTTP is unaware of any public exploit code', and the vulnerability is not in CISA KEV. Real-world exploitation risk is constrained by AC:H and the requirement to target the server-side component specifically; client-only aiohttp users are unaffected. The integrity risk is real but bounded - an attacker able to craft the specific malformed upgrade request could potentially inject a secondary HTTP request into a connection, which may affect backend systems in reverse-proxy deployments. There is no conflicting signal between the CVSS vector and the description; both indicate a network-reachable, unauthenticated, low-integrity impact.

Exploit ScenarioDerived

An attacker sends a crafted HTTP GET request to an aiohttp server with both a WebSocket upgrade header (Connection: Upgrade, Upgrade: websocket) and a non-zero Content-Length body. On vulnerable versions, the parser elevates to WebSocket protocol mode before reading the body, causing the body bytes - which the attacker has constructed to resemble a second HTTP request - to be parsed as a pipelined or protocol-level message. In a reverse-proxy scenario, this trailing fake request could be forwarded to a backend as a distinct authorized request, potentially bypassing access controls or poisoning a shared connection pool. No public exploit code exists at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 03, 2026

HTTP request smuggling in aiohttp's server-side parser allows unauthenticated remote attackers to inject and misdirect HTTP traffic by exploiting a protocol-switch race in the WebSocket upgrade path. Versions 3.14.1 and earlier prematurely mark the connection as upgraded before the full request body is consumed, causing trailing bytes - potentially an attacker-controlled HTTP request - to be interpreted as WebSocket or pipelined data by the server or any upstream proxy. No public exploit code exists and the vulnerability is not listed in CISA KEV, but CVSS 4.0 AC:H reflects the edge-case nature of the trigger condition.

RemediationAI

Upgrade to aiohttp 3.14.2 or later via pip (pip install 'aiohttp>=3.14.2'); this is the vendor-confirmed patch. The fix is implemented in commit 6ae358f0983c3f4d6f67692b2f8e65dc8e091c98 (PR #13017) and defers the WebSocket protocol switch until the full request body is consumed. No workaround is available that preserves WebSocket upgrade functionality - disabling WebSocket support entirely would eliminate the attack surface if WebSockets are not operationally required, though this would be a significant functional trade-off. In reverse-proxy deployments (e.g., nginx in front of aiohttp), configuring the proxy to strip or reject WebSocket upgrade requests with a non-empty body before they reach the aiohttp backend can serve as a compensating control until patching is possible. References: vendor advisory at https://github.com/aio-libs/aiohttp/security/advisories/GHSA-mfx4-hv73-q22v; patch PR at https://github.com/aio-libs/aiohttp/pull/13017.

Affected VersionsENISA

aiohttp < 3.14.2

Affected Packages

pypi aiohttp fix: 3.14.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

aiohttp (CPE: cpe:2.3:a:aio-libs:aiohttp:*:*:*:*:*:*:*:*) is a widely used asynchronous HTTP client/server framework for Python's asyncio, implemented in both Python (http_parser.py) and Cython (_http_parser.pyx). The root cause is CWE-444 (Inconsistent Interpretation of HTTP Requests). RFC 9110 §7.8 requires that a protocol upgrade take effect only after the complete HTTP request - including body - has been received. The vulnerable parser set the _upgraded = True flag upon seeing Connection: Upgrade and a supported Upgrade header during headers-complete processing, before any body bytes were consumed. A WebSocket upgrade request carrying a Content-Length or chunked body thus caused the parser to transition to the upgraded protocol mid-stream, leaving unread body bytes to spill into the upgraded-protocol or pipelined-request processing path. The fix introduces a _pending_upgrade boolean in both the Cython and Python parser implementations, deferring the actual _upgraded = True assignment until the payload reader confirms the body is fully consumed.

Know when Aiohttp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

Network vector, no auth required, but AC:H reflects the specific crafted-body WebSocket upgrade edge case; integrity-only, no scope change per provided 4.0 SC/SI/SA:N.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
SUSE 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Red Hat 7.0 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Aug 03, 2026 - 22:17 EUVD

DescriptionCVE.org

AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.2, the HTTP parsers were vulnerable to a request smuggling attack relating to WebSocket upgrades. If using the server-side component, an attacker may be able to execute a request smuggling vulnerability using an edge case in the WebSocket upgrade procedure. 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. This issue is fixed in version 3.14.2.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 4 pypi packages depend on aiohttp (4 direct, 0 indirect)

Ecosystem-wide dependent count for version 3.14.2.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
popular Python async HTTP library, common in web services
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

HTTP request smuggling exploits inconsistencies in how front-end and back-end servers parse HTTP message boundaries.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2023-47627 HIGH POC
7.5 Nov 14

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated high severity (CVSS 7.5), this vul

CVE-2023-37276 HIGH POC
7.5 Jul 19

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated high severity (CVSS 7.5), this vul

CVE-2026-69244 HIGH POC
7.1 Aug 03

Out-of-bounds heap read in aiohttp's C HTTP response parser (versions ≤ 3.14.2) allows an attacker-controlled server to

CVE-2026-59881 MEDIUM POC
6.9 Jul 30

Uncontrolled decompression in aiohttp's WebSocket client prior to version 3.14.2 allows a malicious server to exhaust CP

CVE-2023-47641 MEDIUM POC
6.5 Nov 14

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated medium severity (CVSS 6.5), this v

CVE-2022-33124 MEDIUM POC
5.5 Jun 23

AIOHTTP 3.8.1 can report a "ValueError: Invalid IPv6 URL" outcome, which can lead to a Denial of Service (DoS). Rated me

CVE-2023-49082 MEDIUM POC
5.3 Nov 29

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated medium severity (CVSS 5.3), this v

CVE-2023-49081 MEDIUM POC
5.3 Nov 30

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated medium severity (CVSS 5.3), this v

CVE-2024-52303 HIGH
8.7 Nov 18

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated high severity (CVSS 8.7), this vul

CVE-2026-111064 HIGH
8.2 Oct 19

Idle or half-open connections to aiohttp server deployments at version 3.14.3 and earlier are never timed out during the

CVE-2026-111066 HIGH
8.2 Oct 19

Unauthenticated remote attackers can exhaust file descriptors in aiohttp-based web services by sending crafted multipart

CVE-2025-69223 HIGH
7.5 Jan 05

AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Versions 3.13.2 and below allow a zip bo

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected
SUSE Linux Enterprise Module for Public Cloud 15 SP7 Affected
SUSE Linux Enterprise Module for Python 3 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy