CVE-2024-52303: aiohttp memory leak when middleware is enabled when requesting a resource with a non-allowed method
Summary
A memory leak can occur when a request produces a MatchInfoError. This was caused by adding an entry to a cache on each request, due to the building of each MatchInfoError producing a unique cache entry.
Impact
If the user is making use of any middlewares with aiohttp.web then it is advisable to upgrade immediately.
An attacker may be able to exhaust the memory resources of a server by sending a substantial number (100,000s to millions) of such requests.
-----
Patch: https://github.com/aio-libs/aiohttp/commit/bc15db61615079d1b6327ba42c682f758fa96936
Other sources
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. In versions starting with 3.10.6 and prior to 3.10.11, a memory leak can occur when a request produces a MatchInfoError. This was caused by adding an entry to a cache on each request, due to the building of each MatchInfoError producing a unique cache entry. An attacker may be able to exhaust the memory resources of a server by sending a substantial number (100,000s to millions) of such requests. Those who use any middlewares with aiohttp.web should upgrade to version 3.10.11 to receive a patch.
— MITRE
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2024-52303?
CVE-2024-52303 is classified as a moderate severity vulnerability due to the potential for memory leaks.
How do I fix CVE-2024-52303?
To fix CVE-2024-52303, upgrade to aiohttp version 3.10.11 or later.
What causes CVE-2024-52303?
CVE-2024-52303 is caused by a memory leak when a request produces a MatchInfoError due to unique cache entries being created per request.
What software is affected by CVE-2024-52303?
CVE-2024-52303 affects aiohttp versions between 3.10.6 and 3.10.11, inclusive.
What are the consequences of CVE-2024-52303?
The consequences of CVE-2024-52303 include excessive memory consumption leading to potential application instability.