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: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Python‑Multipart parses request bodies and, before version 0.0.30, treats the semicolon as a field separator for application/x‑www‑form‑urlencoded data, unlike the WHATWG URL standard and common library behaviour which use only the ampersand. This causes the same input bytes to be tokenised into different fields than a compliant intermediary would, letting an attacker introduce additional form fields that bypass inspection. The effect is that hidden parameters can be injected into the parsed form data, potentially undermining validation, authentication, or other logic that relies on the parsed fields.

Affected Systems

The flaw exists in all releases of Kludex python‑multipart earlier than 0.0.30. Attacking systems that use this library to parse multipart/form‑data or application/x‑www‑form‑urlencoded request bodies are affected. The issue was fixed in release 0.0.30, which removes the semicolon separator.

Risk and Exploitability

The CVSS score of 3.7 indicates a moderate impact, and the EPSS score is currently unavailable, suggesting a limited but possible likelihood of exploitation. The vulnerability is not listed in the CISA KEV catalog. An attacker would need to send a specially crafted HTTP request containing a semicolon‑separated encoded body; the upstream application would receive the smuggled fields as distinct parameters. Because this requires network access to the target and no local execution, the attack vector is remote network access. While the damage is limited to the injection of hidden parameters, it could be leveraged to subvert security controls that do not validate the source of parameters.

Generated by OpenCVE AI on June 22, 2026 at 18:20 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade python‑multipart to version 0.0.30 or later.
  • In the upgrade, verify that the affected dependency is replaced throughout all virtual environments and containers.
  • If an immediate upgrade is not possible, sanitize incoming request bodies to remove or neutralise semicolon separators before passing data to the parser.

Generated by OpenCVE AI on June 22, 2026 at 18:20 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

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

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-22T16:56:32.628Z

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

Link: CVE-2026-53538

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-22T18:30:15Z

Weaknesses
  • CWE-436

    Interpretation Conflict

  • CWE-444

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