Description
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.4, Application.add_domain() converts every asterisk wildcard in a domain mask into a greedy regular-expression fragment, so a mask containing two or more wildcards can take polynomial time to reject a long Host header that does not match. A remote attacker can repeatedly send such headers to a server configured with a multi-wildcard domain mask and stall 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-jm3w-gw2p-xjfj
- https://github.com/aio-libs/aiohttp/pull/13943
- https://github.com/aio-libs/aiohttp/pull/13945
- https://github.com/aio-libs/aiohttp/commit/766b882820da0651c84090e366a3b024b4a263c9
- https://github.com/aio-libs/aiohttp/commit/c6ac0e44c3c573ff9616f4a6a532992538b31e43
- https://github.com/aio-libs/aiohttp/releases/tag/v3.14.4