Skip to main content
CVE-2024-30251VulnerabilityPublished

CVE-2024-30251: aio-libs aiohttp · Infinite Loop

Affects aio-libs aiohttpSource CVE Database V5

0

Not known to be exploited · CVSS 7.5 High : upgrade to 3.9.4 soon.

Data as of 26 Oct 2026, 07:57 UTC

CVSS 3.1 base score
7.5High
How severe the flaw is on the 0–10 CVSS scale.
EPSS
1.0% chance of exploitation in 30 days – higher than 65% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 3.9.4
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 3 Nov 2025

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 2026-10-26.

What to do

Upgrade aio-libs aiohttp to 3.9.4.

Affected software

ProductAffectedFixed in
PyPIaiohttppkg:pypi/aiohttpOther threatsAffected
  • <3.9.4
Fixed in
  • 3.9.4

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

The primary mitigation is to upgrade all aiohttp deployments to version 3.9.4 or later, where the infinite loop vulnerability has been fixed. For organizations unable to upgrade immediately, applying the official patch or backporting the fix to their current version is critical. Network-level protections such as Web Application Firewalls (WAFs) should be configured to detect and block suspicious multipart/form-data POST requests that could trigger the vulnerability, although crafting precise signatures may be challenging. Rate limiting and anomaly detection on HTTP POST requests can help reduce the risk of exploitation. Monitoring aiohttp server logs for unusual request patterns or repeated multipart/form-data POST requests can provide early warning signs. Additionally, isolating aiohttp services behind reverse proxies or API gateways can add an extra layer of filtering and resilience. Regular security assessments and penetration testing should include attempts to exploit this vulnerability to verify mitigation effectiveness.

Description

### Summary An attacker can send a specially crafted POST (multipart/form-data) request. When the aiohttp server processes it, the server will enter an infinite loop and be unable to process any further requests. ### Impact An attacker can stop the application from serving requests after sending a single request. ------- For anyone needing to patch older versions of aiohttp, the minimum diff needed to resolve the issue is (located in `_read_chunk_from_length()`): ```diff diff --git a/aiohttp/multipart.py b/aiohttp/multipart.py index 227be605c..71fc2654a 100644 --- a/aiohttp/multipart.py +++ b/aiohttp/multipart.py @@ -338,6 +338,8 @@ class BodyPartReader: assert self._length is not None, "Content-Length required for chunked read" chunk_size = min(size, self._length - self._read_bytes) chunk = await self._content.read(chunk_size) + if self._content.at_eof(): + self._at_eof = True return chunk async def _read_chunk_from_stream(self, size: int) -> bytes: ``` This does however introduce some very minor issues with handling form data. So, if possible, it would be recommended to also backport the changes in: https://github.com/aio-libs/aiohttp/commit/cebe526b9c34dc3a3da9140409db63014bc4cf19 https://github.com/aio-libs/aiohttp/commit/7eecdff163ccf029fbb1ddc9de4169d4aaeb6597 https://github.com/aio-libs/aiohttp/commit/f21c6f2ca512a026ce7f0f6c6311f62d6a638866

References

Community reviews

Loading reviews…