Skip to content
Heist/ feed
Back to feed
Low

Python-Multipart: Content-Disposition parameter smuggling via RFC 2231/5987 extended parameters

Type: advisorySources: OSV

Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, parse_options_header parsed Content-Disposition (and Content-Type) headers with email.message.Message, which transparently applies RFC 2231/5987 decoding. The extended parameter syntax (filename*=charset'lang'value, name*=..., and the filename*0/filename*1 continuation form) is decoded and surfaced under the bare filename/name key, and overrides the plain parameter when both are present. RFC 7578 §4.2 explicitly forbids the filename* form in multipart/form-data. Components that follow RFC 7578, or that do not implement RFC 2231/5987 decoding for multipart/form-data (WAFs, proxies, gateways), may interpret such a header differently. An attacker can exploit that difference to smuggle a different field name or filename past an upstream inspector to the backend. This vulnerability is fixed in 0.0.30.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-53537
Confirmed fixed CVEs
Not specified
Updated in this feed
5 Nov 2026, 16:40 UTC · Revision 1

Source evidence

Python-Multipart: Content-Disposition parameter smuggling via RFC 2231/5987 extended parameters

core-osv · Original source

Published 22 Jun 2026, 16:57 UTC

Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, parse_options_header parsed Content-Disposition (and Content-Type) headers with email.message.Message, which transparently applies RFC 2231/5987 decoding. The extended parameter syntax (filename*=charset'lang'value, name*=..., and the filename*0/filename*1 continuation form) is decoded and surfaced under the bare filename/name key, and overrides the plain parameter when both are present. RFC 7578 §4.2 explicitly forbids the filename* form in multipart/form-data. Components that follow RFC 7578, or that do not implement RFC 2231/5987 decoding for multipart/form-data (WAFs, proxies, gateways), may interpret such a header differently. An attacker can exploit that difference to smuggle a different field name or filename past an upstream inspector to the backend. This vulnerability is fixed in 0.0.30.

osv:CVE-2026-53537
Complete source record
{
  "id": "1b7425bbfa8d41f1acb52715a4cd235362e16498ba47fb14fca9bf78885cc568",
  "url": "https://osv.dev/vulnerability/CVE-2026-53537",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Python-Multipart: Content-Disposition parameter smuggling via RFC 2231/5987 extended parameters",
    "summary": "Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, parse_options_header parsed Content-Disposition (and Content-Type) headers with email.message.Message, which transparently applies RFC 2231/5987 decoding. The extended parameter syntax (filename*=charset'lang'value, name*=..., and the filename*0/filename*1 continuation form) is decoded and surfaced under the bare filename/name key, and overrides the plain parameter when both are present. RFC 7578 §4.2 explicitly forbids the filename* form in multipart/form-data. Components that follow RFC 7578, or that do not implement RFC 2231/5987 decoding for multipart/form-data (WAFs, proxies, gateways), may interpret such a header differently. An attacker can exploit that difference to smuggle a different field name or filename past an upstream inspector to the backend. This vulnerability is fixed in 0.0.30.",
    "evidence": "osv:CVE-2026-53537",
    "products": [],
    "severity": "low",
    "structured": {
      "id": "CVE-2026-53537",
      "aliases": [
        "CVE-2026-53537",
        "GHSA-vffw-93wf-4j4q",
        "PYSEC-2026-3041"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/kludex/python-multipart",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "9d3ead568a259f222cff6425262ff63e88d930d4"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "0.0.30"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "cpe": "cpe:2.3:a:fastapiexpert:python-multipart:*:*:*:*:*:python:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "0.0.30"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "0.0.29",
            "0.0.28",
            "0.0.27",
            "0.0.26",
            "0.0.25",
            "0.0.24",
            "0.0.23",
            "0.0.22",
            "0.0.21",
            "0.0.20",
            "0.0.19",
            "0.0.18",
            "0.0.17",
            "0.0.16",
            "0.0.15",
            "0.0.14",
            "0.0.13",
            "0.0.12",
            "0.0.11",
            "0.0.10",
            "0.0.9",
            "0.0.8",
            "0.0.7",
            "0.0.6",
            "0.0.5",
            "0.0.4",
            "0.0.2"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53537.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:44.346066774Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53537.json",
        "https://github.com/Kludex/python-multipart/security/advisories/GHSA-vffw-93wf-4j4q",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-53537"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-20",
          "CWE-436"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53537.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-53537",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 512430,
  "published_at": "2026-06-22T16:57:21.496+00:00"
}