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
Share

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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
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
qualitative

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

4
Patch available
Jul 30, 2026 - 19:04 EUVD
Source Code Evidence Fetched
Jul 30, 2026 - 18:21 vuln.today
Analysis Generated
Jul 30, 2026 - 18:21 vuln.today
CVE Published
Jul 30, 2026 - 17:34 cve.org
MEDIUM 6.9

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.

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.

AnalysisAI

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.

Technical ContextAI

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

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.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

CVE-2026-55255 HIGH POC
8.4 Jun 19

Cross-user flow execution in Langflow (< 1.9.1) lets any authenticated API-key holder run another user's flow by passing

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

Share

CVE-2026-59881 vulnerability details – vuln.today

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