Skip to main content

aiohttp CVE-2026-59881

| EUVDEUVD-2026-51257 MEDIUM
Improper Input Validation (CWE-20)
2026-07-30 GitHub_M GHSA-mq44-7p77-q5h7
6.9
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Operate or compromise a WebSocket server
  2. Delivery
    Victim aiohttp client initiates WebSocket connection
  3. Exploit
    Omit permessage-deflate in handshake response
  4. Execution
    Send RSV1-flagged compressed frames to client
  5. Persist
    Client decompresses unconditionally due to `compress=True` default
  6. Impact
    CPU and memory exhaustion in client process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires that the victim application uses aiohttp's WebSocket client component (not the server) and establishes a connection to an attacker-controlled or attacker-compromised WebSocket server. The flaw is triggered when the malicious server sends frames with the RSV1 bit set without having completed permessage-deflate extension negotiation during the WebSocket handshake - a direct RFC 6455 violation that unpatched aiohttp silently accepts. Exploitation is NOT possible against aiohttp acting as a WebSocket server. Exploitation is NOT possible if the client only connects to trusted servers under the operator's control. The CVSS PR:N and UI:N ratings reflect that the attacker-controlled server requires no authentication credential and no end-user gesture once the client application has initiated the outbound WebSocket connection. Limiting factors: the attacker must control the server endpoint being contacted, which requires either owning a service the target application connects to or achieving a network-level man-in-the-middle position.

Impact

The CVSS 4.0 score of 6.9 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L) correctly reflects network reachability but requires important contextual qualification: this is a client-side vulnerability, meaning the 'attacker' must control or compromise a WebSocket server that the victim aiohttp client connects to. The PR:N and UI:N metrics apply from the malicious server's perspective - no auth is needed and no user gesture is required to trigger decompression once the client connects. Availability impact is rated Low (VA:L) in CVSS 4.0, consistent with the resource exhaustion being bounded rather than immediately fatal. No EPSS score was provided in the input data, and the vulnerability is absent from the CISA KEV catalog, indicating no confirmed active exploitation. Real-world risk is meaningful only for applications that make outbound WebSocket connections to untrusted or third-party servers; services acting exclusively as WebSocket servers, or clients connecting only to internal trusted endpoints, face negligible exposure. No conflicting signals were identified between the CVSS vector and the description.

Exploit ScenarioDerived

An attacker operates a WebSocket server (or compromises a legitimate one) that an aiohttp-based application connects to. During the WebSocket handshake, the server intentionally omits the permessage-deflate extension negotiation, then streams frames with the RSV1 bit set containing large or crafted compressed payloads. Because the unpatched aiohttp client defaults to compress=True, it decompresses these frames unconditionally, consuming disproportionate CPU and memory for each such frame, potentially degrading or crashing the client application process.

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 – Jul 30, 2026

Uncontrolled decompression in aiohttp's WebSocket client prior to version 3.14.2 allows a malicious server to exhaust CPU and memory on connecting clients by sending RSV1-flagged compressed frames without having negotiated the permessage-deflate extension. The root cause is a missing constructor argument in client.py:_ws_connect that caused WebSocketReader to default to compress=True, violating RFC 6455 §5.2 which mandates failing the connection on undefined reserved bits. This is client-side exposure only - aiohttp server deployments are not affected. No active exploitation has been identified and no public exploit code exists at time of analysis.

RemediationAI

Upgrade aiohttp to version 3.14.2 or later; this is the vendor-released patch confirmed by the official release tag at http://github.com/aio-libs/aiohttp/releases/tag/v3.14.2 and commit 47fb6ae354d4fa22048f4dbe7dbf82b625f0a2f6. The fix passes compress=bool(compress) explicitly in client.py:_ws_connect and removes the unsafe compress=True default from WebSocketReader.__init__, enforcing RFC 6455 §5.2 compliance. If immediate upgrade is not feasible, the primary compensating control is to restrict aiohttp WebSocket client usage to connections against known-trusted servers only, using network-layer controls (allowlist of permitted WebSocket server endpoints) to prevent connections to attacker-controlled hosts. A secondary option is to disable WebSocket client functionality altogether if it is not operationally required; this eliminates the attack surface with no functional impact on aiohttp's HTTP client or server roles. Both workarounds require ongoing operational maintenance and should be treated as temporary bridges to patching.

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 Python asyncio HTTP client/server library. The WebSocket protocol (RFC 6455 §5.2) reserves the RSV1 bit for use only by negotiated extensions; without a negotiated extension defining it, a receiver must fail the connection upon receiving a frame with RSV1 set. The permessage-deflate extension (PMCE, RFC 7692) uses RSV1 to signal per-message compression. In aiohttp's WebSocket client code (aiohttp/client.py:_ws_connect), the WebSocketReader was instantiated without passing the compress parameter, which defaulted to True in aiohttp/_websocket/reader_py.py:WebSocketReader.__init__. This caused the client to silently decompress server frames with RSV1 set regardless of whether PMCE was actually negotiated in the WebSocket handshake. CWE-20 (Improper Input Validation) is the root cause class: the client failed to validate frame flags against the set of actually-negotiated extensions before processing frame payload data. The fix (PR #12978, commit 47fb6ae) passes compress=bool(compress) explicitly and removes the unsafe default from WebSocketReader.__init__.

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.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Network vector because attacker controls the server; PR:N and UI:N from the malicious server's perspective; availability-only impact from resource exhaustion; no scope change.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Jul 30, 2026 - 19:04 EUVD
CVE Published
Jul 30, 2026 - 17:34 cve.org
MEDIUM 6.9

DescriptionCVE.org

AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.2, the WebSocket client accepts and decompresses frames with the RSV1 bit set even when the permessage-deflate extension was not negotiated, allowing a malicious server to cause unexpected CPU and memory consumption. 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 77% exploitable
Prevalence
High
widely-used Python async HTTP library, tens of millions of PyPI downloads
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium
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
High
Technical Impact
Partial

Priority Score

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

Attack Technique

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-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-2026-69243 MEDIUM POC
6.3 Aug 03

HTTP request smuggling in aiohttp's server-side parser allows unauthenticated remote attackers to inject and misdirect H

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-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

CVE-2025-53643 HIGH
7.5 Jul 14

AIOHTTP versions prior to 3.12.14 contain a request smuggling vulnerability in the Python parser that fails to properly

CVE-2024-30251 HIGH
7.5 May 02

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

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