CVE-2026-53540

Python-Multipart: Negative Content-Length in parse_form buffers the entire body in memory

Published Jun 22, 2026 CVSS 3.1 · 3.7 Low EPSS < 1% KEV · Not listed
Description
Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.31, parse_form() did not validate the Content-Length header before using it to bound its chunked read of the request body. A negative Content-Length turned the bounded read into a read-until-EOF, so the entire body was loaded into memory in a single read instead of in fixed-size chunks. This vulnerability is fixed in 0.0.31.

Analysis

AI-generated

Technical impact

A negative Content‑Length header causes python‑multipart’s parse_form() to perform an unbounded read, loading the entire request body into memory in one operation rather than processing it in fixed‑size chunks. This excessive memory consumption can exhaust available RAM, leading the application or host to crash or become unresponsive. The flaw is a classic resource exhaustion vulnerability (CWE‑400).

Affected Systems

Kludex python‑multipart versions earlier than 0.0.31 are affected. Any application or framework that depends on these older releases and forwards client requests to parse_form() is at risk.

Risk and Exploitability

The CVSS score of 3.7 indicates a low severity impact, while the EPSS score of < 1 % suggests that public exploitation is unlikely. It is not listed in the CISA KEV catalog. The likely attack vector is through the HTTP request header; an adversary can craft a request with a negative Content‑Length value and send it to a vulnerable service, causing the parser to read until EOF and consume large amounts of memory. Successful exploitation requires that the target application use an affected python‑multipart version and that the negative header reaches the parse_form() call without prior validation.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade python‑multipart to version 0.0.31 or later
  • Validate incoming request headers to reject negative Content‑Length values before invoking parse_form()
  • Keep all dependencies up to date and monitor security advisories for future patches

Generated by OpenCVE AI on August 2, 2026 at 01:34 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-v9pg-7xvm-68hf python-multipart: Negative Content-Length in parse_form buffers the entire body in memory
History
Type Values Removed Values Added
First Time appeared Kludex
Kludex python-multipart
Vendors & Products Kludex
Kludex python-multipart
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.31, parse_form() did not validate the Content-Length header before using it to bound its chunked read of the request body. A negative Content-Length turned the bounded read into a read-until-EOF, so the entire body was loaded into memory in a single read instead of in fixed-size chunks. This vulnerability is fixed in 0.0.31.
Title Python-Multipart: Negative Content-Length in parse_form buffers the entire body in memory
Weaknesses CWE-1284
References
Metrics cvssV3_1

{'score': 3.7, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L'}

Weaknesses
  • CWE-1284

    Improper Validation of Specified Quantity in Input

  • CWE-400

    Uncontrolled Resource Consumption

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jun 22, 2026, 5:21 PM
Reserved
Jun 9, 2026, 6:13 PM
Status
Analyzed
Published
Jun 22, 2026, 6:16 PM
Modified
Oct 25, 2026, 11:10 PM
Severity
Low
Public date
Jun 22, 2026, 4:58 PM