CVE-2026-28356: ReDoS in multipart 1.3.0 - `parse_options_header()`
multipart is a fast multipart/form-data parser for python. Prior to 1.2.2, 1.3.1 and 1.4.0-dev, the parse_options_header() function in multipart.py uses a regular expression with an ambiguous alternation, which can cause exponential backtracking (ReDoS) when parsing maliciously crafted HTTP or multipart segment headers. This can be abused for denial of service (DoS) attacks against web applications using this library to parse request headers or multipart/form-data streams. The issue is fixed in 1.2.2, 1.3.1 and 1.4.0-dev.
Security readout for executives and security teams
Plain-English summary
CVE-2026-28356 is a denial-of-service flaw in the Python multipart library. A maliciously crafted HTTP or multipart header can make vulnerable applications spend excessive CPU while parsing, potentially making upload or form-handling services unavailable. The sources describe availability impact only, not data theft or data modification.
Executive priority
Treat this as a high-priority availability risk for exposed web services using multipart. Patch promptly where the library is present, especially on externally reachable systems, but do not classify it as known exploited based on the supplied sources.
Technical view
The vulnerable parse_options_header() function in multipart.py uses a regular expression with ambiguous alternation, enabling exponential backtracking. Affected versions are defnull multipart before 1.2.2 and 1.3.0 before 1.3.1. Fixed versions are listed as 1.2.2, 1.3.1, and 1.4.0-dev.
Likely exposure
Exposure is most likely in Python web applications or services that use defnull multipart to parse HTTP headers or multipart/form-data streams, especially public upload, form submission, or API endpoints.
Exploitation context
The CVSS vector indicates network reachability, low attack complexity, no privileges, and no user interaction. The bundle does not show CISA KEV listing or other cited evidence of active exploitation.
Researcher notes
The record maps to CWE-1333 and CVSS 3.1 score 7.5. Evidence identifies a regex ReDoS in parse_options_header(), but the bundle does not include proof-of-concept details, observed exploitation, or a complete downstream product list.
Mitigation direction
Upgrade multipart to 1.2.2, 1.3.1, or a fixed later release.
Inventory Python services that parse multipart/form-data or request headers.
Check Red Hat advisories for distribution-specific package status.
Apply vendor guidance where bundled or transitive dependencies are involved.
Use request size and timeout controls as defense-in-depth.
Validation and detection
Check dependency manifests and lockfiles for defnull multipart versions.
Confirm runtime environments do not load affected multipart versions.
Prioritize internet-facing upload, form, and API endpoints for review.
Verify patched package versions in built containers and deployed hosts.
Review logs and metrics for unexplained CPU spikes during header parsing.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-1333: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.