CVE-2026-53538

Python-Multipart: Semicolon treated as querystring field separator enables parameter smuggling

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.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.

Analysis

AI-generated

Technical 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.

Remediation

No solution or workaround provided in the CVE record.

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 August 2, 2026 at 01:35 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
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
First Time appeared Kludex
Kludex python-multipart
Vendors & Products Kludex
Kludex python-multipart
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'}

Weaknesses
  • CWE-1288

    Improper Validation of Consistency within Input

  • CWE-436

    Interpretation Conflict

  • CWE-444

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

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jun 23, 2026, 4:08 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
Moderate
Public date
Jun 22, 2026, 4:56 PM