CVE-2024-47874
Starlette Denial of service (DoS) via multipart/form-data
Starlette is an Asynchronous Server Gateway Interface (ASGI) framework/toolkit. Prior to version 0.40.0, Starlette treats multipart/form-data parts without a filename as text form fields and buffers those in byte strings with no size limit. This allows an attacker to upload arbitrary large form fields and cause Starlette to both slow down significantly due to excessive memory allocations and copy operations, and also consume more and more memory until the server starts swapping and grinds to a halt, or the OS terminates the server process with an OOM error. Uploading multiple such requests in parallel may be enough to render a service practically unusable, even if reasonable request size limits are enforced by a reverse proxy in front of Starlette. This Denial of service (DoS) vulnerability affects all applications built with Starlette (or FastAPI) accepting form requests. Verison 0.40.0 fixes this issue.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.7
Starlette Denial of service (DoS) via multipart/form-data
Starlette is an Asynchronous Server Gateway Interface (ASGI) framework/toolkit. Prior to version 0.40.0, Starlette treats multipart/form-data parts without a filename as text form fields and buffers those in byte strings with no size limit. This allows an attacker to upload arbitrary large form fields and cause Starlette to both slow down significantly due to excessive memory allocations and copy operations, and also consume more and more memory until the server starts swapping and grinds to a halt, or the OS terminates the server process with an OOM error. Uploading multiple such requests in parallel may be enough to render a service practically unusable, even if reasonable request size limits are enforced by a reverse proxy in front of Starlette. This Denial of service (DoS) vulnerability affects all applications built with Starlette (or FastAPI) accepting form requests. Verison 0.40.0 fixes this issue.
- Record
CVE-2024-47874- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-770
- Updated
- 2026-11-02
EUVDEUVD-2024-3029
8.7
Starlette is an Asynchronous Server Gateway Interface (ASGI) framework/toolkit. Prior to version 0.40.0, Starlette treats multipart/form-data parts without a filename as text form fields and buffers those in byte strings with no size limit. This allows an attacker to upload arbitrary large form fields and cause Starlette to both slow down significantly due to excessive memory allocations and copy operations, and also consume more and more memory until the server starts swapping and grinds to a halt, or the OS terminates the server process with an OOM error. Uploading multiple such requests in parallel may be enough to render a service practically unusable, even if reasonable request size limits are enforced by a reverse proxy in front of Starlette. This Denial of service (DoS) vulnerability affects all applications built with Starlette (or FastAPI) accepting form requests. Verison 0.40.0 fixes this issue.
- Record
EUVD-2024-3029- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-f96h-pmfr-66vw
8.7
Starlette Denial of service (DoS) via multipart/form-data
Summary
Starlette treats multipart/form-data parts without a filename as text form fields and buffers those in byte strings with no size limit. This allows an attacker to upload arbitrary large form fields and cause Starlette to both slow down significantly due to excessive memory allocations and copy operations, and also consume more and more memory until the server starts swapping and grinds to a halt, or the OS terminates the server process with an OOM error. Uploading multiple such requests in parallel may be enough to render a service practically unusable, even if reasonable request size limits are enforced by a reverse proxy in front of Starlette.
PoC
from starlette.applications import Starlette
from starlette.routing import Route
async def poc(request):
async with request.form():
pass
app = Starlette(routes=[
Route('/', poc, methods=["POST"]),
])
curl http://localhost:8000 -F 'big=</dev/urandom'
Impact
This Denial of service (DoS) vulnerability affects all applications built with Starlette (or FastAPI) accepting form requests.
- Record
GHSA-f96h-pmfr-66vw- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 0.0 None
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N - Weakness
- CWE-770
- Updated
- 2026-11-02
NVD
8.7
Starlette is an Asynchronous Server Gateway Interface (ASGI) framework/toolkit. Prior to version 0.40.0, Starlette treats multipart/form-data parts without a filename as text form fields and buffers those in byte strings with no size limit. This allows an attacker to upload arbitrary large form fields and cause Starlette to both slow down significantly due to excessive memory allocations and copy operations, and also consume more and more memory until the server starts swapping and grinds to a halt, or the OS terminates the server process with an OOM error. Uploading multiple such requests in parallel may be enough to render a service practically unusable, even if reasonable request size limits are enforced by a reverse proxy in front of Starlette. This Denial of service (DoS) vulnerability affects all applications built with Starlette (or FastAPI) accepting form requests. Verison 0.40.0 fixes this issue.
- Record
CVE-2024-47874- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Weakness
- CWE-770
- Updated
- 2026-11-02
OSV
8.7
Starlette Denial of service (DoS) via multipart/form-data
Starlette is an Asynchronous Server Gateway Interface (ASGI) framework/toolkit. Prior to version 0.40.0, Starlette treats multipart/form-data parts without a filename as text form fields and buffers those in byte strings with no size limit. This allows an attacker to upload arbitrary large form fields and cause Starlette to both slow down significantly due to excessive memory allocations and copy operations, and also consume more and more memory until the server starts swapping and grinds to a halt, or the OS terminates the server process with an OOM error. Uploading multiple such requests in parallel may be enough to render a service practically unusable, even if reasonable request size limits are enforced by a reverse proxy in front of Starlette. This Denial of service (DoS) vulnerability affects all applications built with Starlette (or FastAPI) accepting form requests. Verison 0.40.0 fixes this issue.
- Record
CVE-2024-47874- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2024-47874
8.7
Starlette is an Asynchronous Server Gateway Interface (ASGI) framework/toolkit. Prior to version 0.40.0, Starlette treats multipart/form-data parts without a filename as text form fields and buffers those in byte strings with no size limit. This allows an attacker to upload arbitrary large form fields and cause Starlette to both slow down significantly due to excessive memory allocations and copy operations, and also consume more and more memory until the server starts swapping and grinds to a halt, or the OS terminates the server process with an OOM error. Uploading multiple such requests in parallel may be enough to render a service practically unusable, even if reasonable request size limits are enforced by a reverse proxy in front of Starlette. This Denial of service (DoS) vulnerability affects all applications built with Starlette (or FastAPI) accepting form requests. Verison 0.40.0 fixes this issue.
- Record
DEBIAN-CVE-2024-47874- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
Show 10 moreShow less
OSVGHSA-f96h-pmfr-66vw
8.7
Starlette Denial of service (DoS) via multipart/form-data
Summary
Starlette treats multipart/form-data parts without a filename as text form fields and buffers those in byte strings with no size limit. This allows an attacker to upload arbitrary large form fields and cause Starlette to both slow down significantly due to excessive memory allocations and copy operations, and also consume more and more memory until the server starts swapping and grinds to a halt, or the OS terminates the server process with an OOM error. Uploading multiple such requests in parallel may be enough to render a service practically unusable, even if reasonable request size limits are enforced by a reverse proxy in front of Starlette.
PoC
from starlette.applications import Starlette
from starlette.routing import Route
async def poc(request):
async with request.form():
pass
app = Starlette(routes=[
Route('/', poc, methods=["POST"]),
])
curl http://localhost:8000 -F 'big=</dev/urandom'
Impact
This Denial of service (DoS) vulnerability affects all applications built with Starlette (or FastAPI) accepting form requests.
- Record
GHSA-f96h-pmfr-66vw- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 0.0 None
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVPYSEC-2026-1943
8.7
Starlette Denial of service (DoS) via multipart/form-data
Summary
Starlette treats multipart/form-data parts without a filename as text form fields and buffers those in byte strings with no size limit. This allows an attacker to upload arbitrary large form fields and cause Starlette to both slow down significantly due to excessive memory allocations and copy operations, and also consume more and more memory until the server starts swapping and grinds to a halt, or the OS terminates the server process with an OOM error. Uploading multiple such requests in parallel may be enough to render a service practically unusable, even if reasonable request size limits are enforced by a reverse proxy in front of Starlette.
PoC
from starlette.applications import Starlette
from starlette.routing import Route
async def poc(request):
async with request.form():
pass
app = Starlette(routes=[
Route('/', poc, methods=["POST"]),
])
curl http://localhost:8000 -F 'big=</dev/urandom'
Impact
This Denial of service (DoS) vulnerability affects all applications built with Starlette (or FastAPI) accepting form requests.
- Record
PYSEC-2026-1943- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 0.0 None
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N - Updated
- 2026-11-02
OSVROOT-APP-PYPI-CVE-2024-47874
0.0
CVE-2024-47874 in starlette - Patched by Root
Root has patched CVE-2024-47874 in the starlette package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2024-47874- CVSS 3.1
- 0.0 None
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2024-47874
8.7
Starlette is an Asynchronous Server Gateway Interface (ASGI) framework/toolkit. Prior to version 0.40.0, Starlette treats multipart/form-data parts without a filename as text form fields and buffers those in byte strings with no size limit. This allows an attacker to upload arbitrary large form fields and cause Starlette to both slow down significantly due to excessive memory allocations and copy operations, and also consume more and more memory until the server starts swapping and grinds to a halt, or the OS terminates the server process with an OOM error. Uploading multiple such requests in parallel may be enough to render a service practically unusable, even if reasonable request size limits are enforced by a reverse proxy in front of Starlette. This Denial of service (DoS) vulnerability affects all applications built with Starlette (or FastAPI) accepting form requests. Verison 0.40.0 fixes this issue.
- Record
UBUNTU-CVE-2024-47874- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
OSVCLSA-2025-1757031156 No score
TuxCare security update for starlette (1 CVE)
TuxCare rebuilt starlette to address 1 CVE. Fixed in 0.27.0.post1+tuxcare.
- Record
CLSA-2025-1757031156- Updated
- 2026-11-02
OSVCLSA-2026-1787300457 No score
TuxCare security update for starlette (3 CVEs)
TuxCare rebuilt starlette to address 3 CVEs. Fixed in 0.13.6.post4+tuxcare.
- Record
CLSA-2026-1787300457- Updated
- 2026-11-02
OSVCLSA-2026-1789447406 No score
TuxCare security update for starlette (8 CVEs)
TuxCare rebuilt starlette to address 8 CVEs. Fixed in 0.25.0.post1+tuxcare.
- Record
CLSA-2026-1789447406- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:14417-1 No score
python310-starlette-0.41.0-1.1 on GA media
These are all security issues fixed in the python310-starlette-0.41.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:14417-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11626-1 No score
python313-starlette-1.6.0-1.1 on GA media
These are all security issues fixed in the python313-starlette-1.6.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11626-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:3719-1 No score
Security update for python-starlette
This update for python-starlette fixes the following issues:
- CVE-2024-47874: Fixed possible DoS via parts size in multipart/form-data requests (bsc#1231689)
- Record
SUSE-SU-2024:3719-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
starlettePyPI |
before 0.40.0 | 0.40.0 |
starletteTuxCare:PyPI |
0.27.0 up to 0.27.0.post1+tuxcare | 0.27.0.post1+tuxcare |
starletteTuxCare:PyPI From an advisory covering 3 CVEs |
0.13.6 up to 0.13.6.post4+tuxcare, plus listed versions 0.13.6.post1+tuxcare0.13.6.post2+tuxcare0.13.6.post3+tuxcare |
0.13.6.post4+tuxcare |
starletteTuxCare:PyPI From an advisory covering 8 CVEs |
0.25.0 up to 0.25.0.post1+tuxcare | 0.25.0.post1+tuxcare |
starletteDebian:12 |
before 0.26.1-1+deb12u1, plus listed versions 0.26.1-1 |
0.26.1-1+deb12u1 |
starletteDebian:13 |
before 0.41.0-1 | 0.41.0-1 |
starletteDebian:14 |
before 0.41.0-1 | 0.41.0-1 |
starlettePyPI |
before 0.40.0, plus listed versions 0.1.00.1.10.1.100.1.110.1.12 Show 45 moreShow less0.1.130.1.140.1.150.1.160.1.170.1.20.1.30.1.40.1.50.1.60.1.70.1.80.1.90.10.00.10.10.10.20.10.30.10.40.10.50.10.60.10.70.11.00.11.10.11.20.11.30.11.40.12.00.12.0b10.12.0b20.12.0b30.12.10.12.100.12.110.12.120.12.130.12.20.12.30.12.40.12.50.12.60.12.70.12.80.12.90.13.00.13.1 |
0.40.0 |
starletteRoot:PyPI |
before 0.27.0+aikido.11 | 0.27.0+aikido.110.22.0+aikido.70.22.0+aikido.30.36.3+aikido.30.22.0+aikido.50.22.0+aikido.60.27.0+aikido.10 |
rootio-starletteRoot:PyPI |
before 0.22.0+aikido.4 | 0.22.0+aikido.4 |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-starletteopenSUSE:Leap 15.6 |
before 0.35.1-150600.3.3.1 | 0.35.1-150600.3.3.1 |
starletteUbuntu:22.04:LTS |
All versions, plus listed versions 0.14.1-10.16.0-10.18.0-1 |
None known |
starletteUbuntu:24.04:LTS |
All versions, plus listed versions 0.30.0-10.31.1-1 |
None known |
python-starletteopenSUSE:Tumbleweed |
before 0.41.0-1.1 | 0.41.0-1.1 |
python-starletteopenSUSE:Tumbleweed |
before 1.6.0-1.1 | 1.6.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-47874 is a high vulnerability (CVSS 8.7) in Encode Starlette, published October 15, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.65%, the 51st percentile. Fixed in starlette 0.40.0.
References
github.com/encode/starlette/security/advisories/GHSA-f96h-pmfr-66vw
github.com/encode/starlette/commit/fd038f3070c302bff17ef7d173dbb0b007617733
nvd.nist.gov/vuln/detail/CVE-2024-47874
github.com/advisories/GHSA-f96h-pmfr-66vw
github.com/CVEProject/cvelistV5/tree/main/cves/2024/47xxx/CVE-2024-47874.json
security-tracker.debian.org/tracker/CVE-2024-47874
Show 8 moreShow less
github.com/encode/starlette
pypi.org/project/starlette
suse.com/support/update/announcement/2024/suse-su-20243719-1
bugzilla.suse.com/1231689
suse.com/security/cve/CVE-2024-47874
ubuntu.com/security/CVE-2024-47874
cve.org/CVERecord?id=CVE-2024-47874
lists.opensuse.org/archives/list/[email protected]/thread/ITQAANLVA7RFTKABILTYM4X6WZF4U52R
Left out here: 111 versions. The JSON record has them.