Description
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.4, Request.post() does not limit the number of fields in a URL-encoded form body, and inserting many repeated keys into MultiDict takes quadratic time on the event loop. A remote attacker can send a form POST within client_max_size to a handler that calls Request.post() and block the event loop. This issue is fixed in version 3.14.4.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| aio-libs | aiohttp | < 3.14.4 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | python-aiohttp | No fix yet | — |
| Debian 13 | python-aiohttp | No fix yet | — |
| Debian 12 | python-aiohttp | No fix yet | — |
References
- https://github.com/aio-libs/aiohttp/security/advisories/GHSA-xgw8-8ccx-rmqh
- https://github.com/aio-libs/aiohttp/pull/13738
- https://github.com/aio-libs/aiohttp/pull/13741
- https://github.com/aio-libs/aiohttp/commit/615fec3d4f088f30d2ee72cad760152e92aa1c53
- https://github.com/aio-libs/aiohttp/commit/8b0100572936df28977b9de8a6cc7e464c0b521e
- https://github.com/aio-libs/aiohttp/releases/tag/v3.14.4