Description
Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, QuerystringParser treated ; as a field separator in application/x-www-form-urlencoded bodies, in addition to &. The WHATWG URL standard, modern browsers, and Python's urllib.parse (since the CVE-2021-23336 fix) treat only & as a separator. This creates a parser differential: the same bytes are tokenized into different fields than a WHATWG compliant intermediary would produce, allowing an attacker to smuggle extra form fields past an upstream body inspecting component. This vulnerability is fixed in 0.0.30.
Published: 2026-06-22
Score: 3.7 Low
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Python‑Multipart is a streaming multipart parser for Python that, before version 0.0.30, interpreted semicolons as an additional separator in application/x‑www‑form‑url‑encoded bodies, diverging from the WHATWG URL standard that uses only ampersands. This creates a parser differential where an attacker can craft a HTTP request containing semicolon‑separated parameters that are invisible to upstream compliance layers but become part of the parsed data, enabling injection of hidden form fields. The practical consequence is that validation, authentication, or authorization logic that relies on the contents of the parsed form data can be subverted, allowing an attacker to influence application behavior through unexpected parameters.

Affected Systems

The flaw exists in all releases of Kludex python‑multipart older than 0.0.30. Any system that uses this library to parse multipart or application/x‑www‑form‑url‑encoded request bodies is impacted. The bug was fixed in release 0.0.30.

Risk and Exploitability

The CVSS score of 3.7 indicates a moderate potential impact, and the EPSS score of less than 1% suggests a low but non‑zero likelihood of exploitation. The vulnerability is not listed in the CISA KEV catalog. Based on the description, it is inferred that an attacker would need remote network access to the target to send a crafted HTTP request containing a semicolon‑delimited body; the attack vector is therefore remote and requires no local execution or elevated privileges. The likely outcome of a successful exploit is the injection of hidden parameters that can bypass or subvert application logic. Because the vulnerability is limited to parameter smuggling, it does not provide direct code execution but can still undermine the integrity of the application’s input validation or authentication checks.

Generated by OpenCVE AI on July 26, 2026 at 00:11 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade python‑multipart to version 0.0.30 or later.
  • If an immediate upgrade is not possible, preprocess incoming request bodies to strip or neutralise semicolon separators before passing them to the parser.
  • Implement application‑level input validation that rejects or normalises request bodies containing semicolons before parsing into multipart form data.

Generated by OpenCVE AI on July 26, 2026 at 00:11 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-6jv3-5f52-599m python-multipart: Semicolon treated as querystring field separator enables parameter smuggling
History

Tue, 14 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1288
References
Metrics threat_severity

None

threat_severity

Moderate


Tue, 23 Jun 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Mon, 22 Jun 2026 20:15:00 +0000

Type Values Removed Values Added
First Time appeared Kludex
Kludex python-multipart
Vendors & Products Kludex
Kludex python-multipart

Mon, 22 Jun 2026 17:30:00 +0000

Type Values Removed Values Added
Description Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, QuerystringParser treated ; as a field separator in application/x-www-form-urlencoded bodies, in addition to &. The WHATWG URL standard, modern browsers, and Python's urllib.parse (since the CVE-2021-23336 fix) treat only & as a separator. This creates a parser differential: the same bytes are tokenized into different fields than a WHATWG compliant intermediary would produce, allowing an attacker to smuggle extra form fields past an upstream body inspecting component. This vulnerability is fixed in 0.0.30.
Title Python-Multipart: Semicolon treated as querystring field separator enables parameter smuggling
Weaknesses CWE-436
CWE-444
References
Metrics cvssV3_1

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


Subscriptions

Kludex Python-multipart
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-23T16:08:22.050Z

Reserved: 2026-06-09T18:13:07.263Z

Link: CVE-2026-53538

cve-icon Vulnrichment

Updated: 2026-06-23T14:49:25.150Z

cve-icon NVD

No data.

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-06-22T16:56:32Z

Links: CVE-2026-53538 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-07-26T00:15:05Z

Weaknesses
  • CWE-1288

    Improper Validation of Consistency within Input

  • CWE-436

    Interpretation Conflict

  • CWE-444

    Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')