CVE-2025-54121
CVE-2025-54121 · Starlette has possible denial-of-service vector when parsing large files in multipart forms
This page contains facts from public vulnerability sources. Check the original advisory before updating.
Starlette is a lightweight ASGI (Asynchronous Server Gateway Interface) framework/toolkit, designed for building async web services in Python. In versions 0.47.1 and below, when parsing a multi-part form with large files (greater than the default max spool size) starlette will block the main thread to roll the file over to disk. This blocks the event thread which means the application can't accept new connections. The UploadFile code has a minor bug where instead of just checking for self._in_memory, the logic should also check if the additional bytes will cause a rollover. The vulnerability is fixed in version 0.47.2.
CVSS 5.3 · Medium · EPSS 0.7% · Fix available
- Published
- Updated
Affected products and versions
starlette
- Versions
- < 0.47.2: Affected
No fix published
starlette Debian:12
- Versions
- 0.26.1-1
- Affected ranges
- ECOSYSTEM: < 0.26.1-1+deb12u1
Update to 0.26.1-1+deb12u1
starlette Debian:13
- Affected ranges
- ECOSYSTEM: < 0.46.1-3
Update to 0.46.1-3
starlette Debian:14
- Affected ranges
- ECOSYSTEM: < 0.46.1-3
Update to 0.46.1-3
starlette PyPI
- Versions
- 0.1.0
- 0.1.1
- 0.1.10
- 0.1.11
- 0.1.12
- 0.1.13
- 0.1.14
- 0.1.15
- 0.1.16
- 0.1.17
- 0.1.2
- 0.1.3
- 0.1.4
- 0.1.5
- 0.1.6
- 0.1.7
- 0.1.8
- 0.1.9
- 0.10.0
- 0.10.1
- 0.10.2
- 0.10.3
- 0.10.4
- 0.10.5
- 0.10.6
- 0.10.7
- 0.11.0
- 0.11.1
- 0.11.2
- 0.11.3
- 0.11.4
- 0.12.0
- 0.12.0b1
- 0.12.0b2
- 0.12.0b3
- 0.12.1
- 0.12.10
- 0.12.11
- 0.12.12
- 0.12.13
- 0.12.2
- 0.12.3
- 0.12.4
- 0.12.5
- 0.12.6
- 0.12.7
- 0.12.8
- 0.12.9
- 0.13.0
- 0.13.1
- 0.13.2
- 0.13.3
- 0.13.4
- 0.13.5
- 0.13.6
- 0.13.7
- 0.13.8
- 0.14.0
- 0.14.1
- 0.14.2
- 0.15.0
- 0.16.0
- 0.17.0
- 0.17.1
- 0.18.0
- 0.19.0
- 0.19.1
- 0.2.0
- 0.2.1
- 0.2.2
- 0.2.3
- 0.20.0
- 0.20.1
- 0.20.2
- 0.20.3
- 0.20.4
- 0.21.0
- 0.22.0
- 0.23.0
- 0.23.1
- 0.24.0
- 0.25.0
- 0.26.0
- 0.26.0.post1
- 0.26.1
- 0.27.0
- 0.28.0
- 0.29.0
- 0.3.0
- 0.3.1
- 0.3.2
- 0.3.3
- 0.3.4
- 0.3.5
- 0.3.6
- 0.3.7
- 0.30.0
- 0.31.0
- 0.31.1
- 0.32.0
- 0.32.0.post1
- 0.33.0
- 0.34.0
- 0.35.0
- 0.35.1
- 0.36.0
- 0.36.1
- 0.36.2
- 0.36.3
- 0.37.0
- 0.37.1
- 0.37.2
- 0.38.0
- 0.38.1
- 0.38.2
- 0.38.3
- 0.38.4
- 0.38.5
- 0.38.6
- 0.39.0
- 0.39.1
- 0.39.2
- 0.4.0
- 0.4.1
- 0.4.2
- 0.40.0
- 0.41.0
- 0.41.1
- 0.41.2
- 0.41.3
- 0.42.0
- 0.43.0
- 0.44.0
- 0.45.0
- 0.45.1
- 0.45.2
- 0.45.3
- 0.46.0
- 0.46.1
- 0.46.2
- 0.47.0
- 0.47.1
- 0.5.0
- 0.5.1
- 0.5.2
- 0.5.3
- 0.5.4
- 0.5.5
- 0.6.0
- 0.6.1
- 0.6.2
- 0.6.3
- 0.7.0
- 0.7.1
- 0.7.2
- 0.7.3
- 0.7.4
- 0.8.0
- 0.8.1
- 0.8.2
- 0.8.3
- 0.8.4
- 0.8.5
- 0.8.6
- 0.8.7
- 0.8.8
- 0.9.0
- 0.9.1
- 0.9.10
- 0.9.11
- 0.9.2
- 0.9.3
- 0.9.4
- 0.9.5
- 0.9.6
- 0.9.7
- 0.9.8
- 0.9.9
- Affected ranges
- ECOSYSTEM: < 0.47.2
Update to 0.47.2
starlette Ubuntu:22.04:LTS
- Versions
- 0.14.1-1
- 0.16.0-1
- 0.18.0-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
starlette Ubuntu:24.04:LTS
- Versions
- 0.30.0-1
- 0.31.1-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
starlette Ubuntu:25.10
- Versions
- 0.46.1-2
- 0.46.1-3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
starlette Ubuntu:26.10
- Versions
- 0.50.0-1
- 1.1.0-1
- 1.3.1-1
- 1.7.0-2
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
starlette Ubuntu:26.04:LTS
- Versions
- 0.46.1-3
- 0.50.0-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
Original sources
- https://github.com/encode/starlette/security/advisories/GHSA-2c2j-9gv5-cj73
- https://github.com/encode/starlette/commit/9f7ec2eb512fcc3fe90b43cb9dd9e1d08696bec1
- https://github.com/encode/starlette/blob/fa5355442753f794965ae1af0f87f9fec1b9a3de/starlette/datastructures.py#L436C5-L447C14
- https://github.com/encode/starlette/discussions/2927#discussioncomment-13721403
- https://nvd.nist.gov/vuln/detail/CVE-2025-54121