CVE-2026-59881

AIOHTTP: WebSocket client accepts compressed frames without negotiated permessage-deflate

Published Jul 30, 2026 CVSS 4.0 · 6.9 Medium EPSS < 1% KEV · Not listed
Description
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.

Analysis

AI-generated

Technical impact

The flaw resides in AIOHTTP's WebSocket client, which incorrectly processes frames marked with an RSV1 bit that indicates compression, even when the permessage-deflate extension was not negotiated. This allows a server to send compressed frames that the client will unexpectedly decompress, consuming significant CPU cycles and memory. The resulting resource exhaustion can lead to service slowdown or crash, depriving legitimate users of the affected application.

Affected Systems

The vulnerability affects the aio-libs AIOHTTP library for Python. Any deployment using aiohttp prior to version 3.14.2 is potentially exposed, including client applications that rely on WebSocket communication. All earlier releases that do not include the patch are impacted.

Risk and Exploitability

The CVSS score of 6.9 categorizes the weakness as medium severity, while the EPSS score of less than 1% indicates a very low to negligible probability of exploitation at the moment. The vulnerability is not listed in the CISA KEV catalog. The principal attack path requires a malicious WebSocket server that sends compressed frames with the RSV1 bit set. An attacker can trigger the resource exhaustion by sending numerous such frames, affecting availability of the client application. Given the remote nature of the communication, the threat can materialize without local access.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the aiohttp library to version 3.14.2 or newer, which contains the fix that rejects unused RSV1 frames.
  • If an immediate upgrade is impossible, limit the use of WebSocket connections from untrusted servers or implement runtime resource constraints to mitigate potential denial‑of‑service attacks.
  • Configure the application to run the WebSocket client in a sandboxed environment with CPU/memory quotas, and restart the client automatically if abnormal resource usage is detected.

Generated by OpenCVE AI on August 2, 2026 at 05:04 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4876-1 python-aiohttp security update
Github GHSA Github GHSA GHSA-mq44-7p77-q5h7 AIOHTTP: WebSocket client accepts compressed frames without negotiated permessage-deflate
History
Type Values Removed Values Added
First Time appeared Aio-libs
Aio-libs aiohttp
Vendors & Products Aio-libs
Aio-libs aiohttp
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description 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.
Title AIOHTTP: WebSocket client accepts compressed frames without negotiated permessage-deflate
Weaknesses CWE-20
References
Metrics cvssV4_0

{'score': 6.9, 'vector': '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'}

Weaknesses
  • CWE-20

    Improper Input Validation

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jul 30, 2026, 6:35 PM
Reserved
Jul 7, 2026, 4:40 PM
Status
Deferred
Published
Jul 30, 2026, 7:18 PM
Modified
Oct 23, 2026, 10:10 PM