# CVE-2026-123817: AIOHTTP WebSocket memory exhaustion via fragmented frames

Source: https://junglewise.ai/threats/cve-2026-123817-aiohttp-is-an-asynchronous-http-client-server-framework-for  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-11-09. Updated: 2026-11-12  
License: CC BY 4.0 with a link back

CVE-2026-123817 · Severity: info · Published 2026-11-09

AIOHTTP is a Python framework for building asynchronous web clients and servers. A malicious peer can exploit the WebSocket reader to cause excessive memory consumption or service outages by splitting WebSocket frames into many tiny pieces, bypassing the message size limit. This affects both servers receiving from malicious clients and clients receiving from malicious servers.

Technologies: [Aio-Libs Aiohttp](https://junglewise.ai/threats/technologies/aio-libs-aiohttp). Vendors: [Aio-Libs](https://junglewise.ai/threats/vendors/aio-libs).

## Quick answers

**Is CVE-2026-123817 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-123817 being exploited in the wild.

**How severe is CVE-2026-123817?** Informational severity, published 9 November 2026.

**Which products and versions are affected?** Aio-Libs Aiohttp prior to 3.14.4.

**Is there a fix for CVE-2026-123817?** Yes: fixed in 3.14.4. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-123817 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-123817?** Check whether you run Aio-Libs Aiohttp at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in 3.14.4

## Technical details

The WebSocket reader retains one bytes object for each transport read while reassembling incomplete frames, allowing per-object overhead to substantially exceed payload bytes allowed by max_msg_size. A malicious peer splits a frame into many tiny reads to trigger excessive memory consumption. The fix caps the number of per-read payload fragments retained in memory to max(1024, max_msg_size // 256).

## Affected products

- aio-libs AIOHTTP prior to 3.14.4

## Timeline

- 2026-11-09: disclosed

## References

- [https://github.com/aio-libs/aiohttp/commit/09bcaa73ff084a0c539bbf16a0a78743acb7141f](https://github.com/aio-libs/aiohttp/commit/09bcaa73ff084a0c539bbf16a0a78743acb7141f)
- [https://github.com/aio-libs/aiohttp/commit/6a4f6682817839313b04b8e5cea2b39c1a88ab4f](https://github.com/aio-libs/aiohttp/commit/6a4f6682817839313b04b8e5cea2b39c1a88ab4f)

## Related threats

- [aiohttp HTTP request smuggling in pure Python parser](https://junglewise.ai/threats/cve-2026-111750-aiohttp-is-an-asynchronous-http-client-server-framework-for)
- [aiohttp host-only cookie scope bypass in subdomain handling](https://junglewise.ai/threats/cve-2026-111749-aiohttp-is-an-asynchronous-http-client-server-framework-for)
- [aiohttp Request scheme manipulation in absolute-form requests](https://junglewise.ai/threats/cve-2026-111748-aiohttp-is-an-asynchronous-http-client-server-framework-for)
- [AIOHTTP multipart request file descriptor exhaustion](https://junglewise.ai/threats/cve-2026-111066-aiohttp-is-an-asynchronous-http-client-server-framework-for)
- [aiohttp cookie Max-Age integer overflow causes connection pool exhaustion](https://junglewise.ai/threats/cve-2026-111065-aiohttp-is-an-asynchronous-http-client-server-framework-for)
