Action not permitted
Modal body text goes here.
Modal Title
Modal Body
CVE-2026-53538 (GCVE-0-2026-53538)
Vulnerability from cvelistv5 – Published: 2026-06-22 16:56 – Updated: 2026-06-23 16:08| URL | Tags |
|---|---|
| https://github.com/Kludex/python-multipart/securi… | x_refsource_CONFIRM |
| Vendor | Product | Version | |
|---|---|---|---|
| Kludex | python-multipart |
Affected:
< 0.0.30
|
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-53538",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-06-23T14:49:11.715345Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-06-23T16:08:22.050Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "python-multipart",
"vendor": "Kludex",
"versions": [
{
"status": "affected",
"version": "\u003c 0.0.30"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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 \u0026. The WHATWG URL standard, modern browsers, and Python\u0027s urllib.parse (since the CVE-2021-23336 fix) treat only \u0026 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."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "HIGH",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 3.7,
"baseSeverity": "LOW",
"confidentialityImpact": "NONE",
"integrityImpact": "LOW",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-436",
"description": "CWE-436: Interpretation Conflict",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-444",
"description": "CWE-444: Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-06-22T16:56:32.628Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/Kludex/python-multipart/security/advisories/GHSA-6jv3-5f52-599m",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/Kludex/python-multipart/security/advisories/GHSA-6jv3-5f52-599m"
}
],
"source": {
"advisory": "GHSA-6jv3-5f52-599m",
"discovery": "UNKNOWN"
},
"title": "Python-Multipart: Semicolon treated as querystring field separator enables parameter smuggling"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-53538",
"datePublished": "2026-06-22T16:56:32.628Z",
"dateReserved": "2026-06-09T18:13:07.263Z",
"dateUpdated": "2026-06-23T16:08:22.050Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-53538",
"date": "2026-07-04",
"epss": "0.00176",
"percentile": "0.07258"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-53538\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-06-22T18:16:44.223\",\"lastModified\":\"2026-06-26T19:52:35.633\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"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 \u0026. The WHATWG URL standard, modern browsers, and Python\u0027s urllib.parse (since the CVE-2021-23336 fix) treat only \u0026 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.\"}],\"affected\":[{\"source\":\"security-advisories@github.com\",\"affectedData\":[{\"vendor\":\"Kludex\",\"product\":\"python-multipart\",\"versions\":[{\"version\":\"\u003c 0.0.30\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N\",\"baseScore\":3.7,\"baseSeverity\":\"LOW\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"HIGH\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":2.2,\"impactScore\":1.4}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2026-06-23T14:49:11.715345Z\",\"id\":\"CVE-2026-53538\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-436\"},{\"lang\":\"en\",\"value\":\"CWE-444\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:fastapiexpert:python-multipart:*:*:*:*:*:python:*:*\",\"versionEndExcluding\":\"0.0.30\",\"matchCriteriaId\":\"381A8F1D-278D-409F-974A-898BE65DB20C\"}]}]}],\"references\":[{\"url\":\"https://github.com/Kludex/python-multipart/security/advisories/GHSA-6jv3-5f52-599m\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Vendor Advisory\"]}]}}",
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-53538\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-06-23T14:49:11.715345Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-06-23T14:49:25.150Z\"}}], \"cna\": {\"title\": \"Python-Multipart: Semicolon treated as querystring field separator enables parameter smuggling\", \"source\": {\"advisory\": \"GHSA-6jv3-5f52-599m\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 3.7, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"LOW\", \"vectorString\": \"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N\", \"integrityImpact\": \"LOW\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"HIGH\", \"availabilityImpact\": \"NONE\", \"privilegesRequired\": \"NONE\", \"confidentialityImpact\": \"NONE\"}}], \"affected\": [{\"vendor\": \"Kludex\", \"product\": \"python-multipart\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003c 0.0.30\"}]}], \"references\": [{\"url\": \"https://github.com/Kludex/python-multipart/security/advisories/GHSA-6jv3-5f52-599m\", \"name\": \"https://github.com/Kludex/python-multipart/security/advisories/GHSA-6jv3-5f52-599m\", \"tags\": [\"x_refsource_CONFIRM\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"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 \u0026. The WHATWG URL standard, modern browsers, and Python\u0027s urllib.parse (since the CVE-2021-23336 fix) treat only \u0026 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.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-436\", \"description\": \"CWE-436: Interpretation Conflict\"}]}, {\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-444\", \"description\": \"CWE-444: Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request/Response Smuggling\u0027)\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2026-06-22T16:56:32.628Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2026-53538\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-06-23T16:08:22.050Z\", \"dateReserved\": \"2026-06-09T18:13:07.263Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2026-06-22T16:56:32.628Z\", \"assignerShortName\": \"GitHub_M\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
FKIE_CVE-2026-53538
Vulnerability from fkie_nvd - Published: 2026-06-22 18:16 - Updated: 2026-06-26 19:52| Vendor | Product | Version | |
|---|---|---|---|
| fastapiexpert | python-multipart | * |
{
"affected": [
{
"affectedData": [
{
"product": "python-multipart",
"vendor": "Kludex",
"versions": [
{
"status": "affected",
"version": "\u003c 0.0.30"
}
]
}
],
"source": "security-advisories@github.com"
}
],
"configurations": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:fastapiexpert:python-multipart:*:*:*:*:*:python:*:*",
"matchCriteriaId": "381A8F1D-278D-409F-974A-898BE65DB20C",
"versionEndExcluding": "0.0.30",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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 \u0026. The WHATWG URL standard, modern browsers, and Python\u0027s urllib.parse (since the CVE-2021-23336 fix) treat only \u0026 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."
}
],
"id": "CVE-2026-53538",
"lastModified": "2026-06-26T19:52:35.633",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "HIGH",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 3.7,
"baseSeverity": "LOW",
"confidentialityImpact": "NONE",
"integrityImpact": "LOW",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
"version": "3.1"
},
"exploitabilityScore": 2.2,
"impactScore": 1.4,
"source": "security-advisories@github.com",
"type": "Secondary"
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-53538",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-06-23T14:49:11.715345Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-06-22T18:16:44.223",
"references": [
{
"source": "security-advisories@github.com",
"tags": [
"Vendor Advisory"
],
"url": "https://github.com/Kludex/python-multipart/security/advisories/GHSA-6jv3-5f52-599m"
}
],
"sourceIdentifier": "security-advisories@github.com",
"vulnStatus": "Analyzed",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-436"
},
{
"lang": "en",
"value": "CWE-444"
}
],
"source": "security-advisories@github.com",
"type": "Secondary"
}
]
}
GHSA-6JV3-5F52-599M
Vulnerability from github – Published: 2026-06-15 20:22 – Updated: 2026-06-15 20:22Summary
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.
Details
In python_multipart/multipart.py, the FIELD_NAME and FIELD_DATA states located the next separator by scanning for & and, failing that, for ;:
sep_pos = data.find(b"&", i)
if sep_pos == -1:
sep_pos = data.find(b";", i)
As a result, ; acted as a field boundary. Because the fallback only triggered when no & remained in the current chunk, tokenization also depended on unrelated bytes later in the buffer and on how the body was split across write() calls. This is the same class of issue as CVE-2021-23336 in CPython's urllib.parse.
For example, a body inspecting WAF or gateway that follows the WHATWG rule (only & separates fields) receives:
role=user&x=;role=admin
The upstream parses two fields, role=user and x=";role=admin", sees a benign role=user, and forwards the request. QuerystringParser parsed the same bytes as three fields: role="user", x="", and role="admin". The application (for example via Starlette/FastAPI request.form(), where the last value wins) then received role=admin, a value the upstream validator never saw.
The parser is reachable through the public QuerystringParser class, the high level FormParser, create_form_parser, and parse_form APIs, and Starlette/FastAPI request.form() for url encoded bodies.
Impact
Interpretation conflict / HTTP parameter pollution. An attacker can smuggle extra or overriding form fields past an upstream component that applies the WHATWG separator rule, reaching the backend with parameters the intermediary did not observe.
Mitigation
Upgrade to python-multipart 0.0.30 or later, which treats only & as a field separator per the WHATWG URL standard. ; is parsed as ordinary field data, matching urllib.parse, browsers, and other compliant parsers.
{
"affected": [
{
"package": {
"ecosystem": "PyPI",
"name": "python-multipart"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "0.0.30"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-53538"
],
"database_specific": {
"cwe_ids": [
"CWE-436",
"CWE-444"
],
"github_reviewed": true,
"github_reviewed_at": "2026-06-15T20:22:25Z",
"nvd_published_at": null,
"severity": "LOW"
},
"details": "### Summary\n\n`QuerystringParser` treated `;` as a field separator in `application/x-www-form-urlencoded` bodies, in addition to `\u0026`. The [WHATWG URL standard](https://url.spec.whatwg.org/#urlencoded-parsing), modern browsers, and Python\u0027s `urllib.parse` (since the CVE-2021-23336 fix) treat only `\u0026` 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.\n\n### Details\n\nIn `python_multipart/multipart.py`, the `FIELD_NAME` and `FIELD_DATA` states located the next separator by scanning for `\u0026` and, failing that, for `;`:\n\n```python\nsep_pos = data.find(b\"\u0026\", i)\nif sep_pos == -1:\n sep_pos = data.find(b\";\", i)\n```\n\nAs a result, `;` acted as a field boundary. Because the fallback only triggered when no `\u0026` remained in the current chunk, tokenization also depended on unrelated bytes later in the buffer and on how the body was split across `write()` calls. This is the same class of issue as CVE-2021-23336 in CPython\u0027s `urllib.parse`.\n\nFor example, a body inspecting WAF or gateway that follows the WHATWG rule (only `\u0026` separates fields) receives:\n\n```\nrole=user\u0026x=;role=admin\n```\n\nThe upstream parses two fields, `role=user` and `x=\";role=admin\"`, sees a benign `role=user`, and forwards the request. `QuerystringParser` parsed the same bytes as three fields: `role=\"user\"`, `x=\"\"`, and `role=\"admin\"`. The application (for example via Starlette/FastAPI `request.form()`, where the last value wins) then received `role=admin`, a value the upstream validator never saw.\n\nThe parser is reachable through the public `QuerystringParser` class, the high level `FormParser`, `create_form_parser`, and `parse_form` APIs, and Starlette/FastAPI `request.form()` for url encoded bodies.\n\n### Impact\n\nInterpretation conflict / HTTP parameter pollution. An attacker can smuggle extra or overriding form fields past an upstream component that applies the WHATWG separator rule, reaching the backend with parameters the intermediary did not observe.\n\n### Mitigation\n\nUpgrade to `python-multipart` `0.0.30` or later, which treats only `\u0026` as a field separator per the [WHATWG URL standard](https://url.spec.whatwg.org/#urlencoded-parsing). `;` is parsed as ordinary field data, matching `urllib.parse`, browsers, and other compliant parsers.",
"id": "GHSA-6jv3-5f52-599m",
"modified": "2026-06-15T20:22:25Z",
"published": "2026-06-15T20:22:25Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/Kludex/python-multipart/security/advisories/GHSA-6jv3-5f52-599m"
},
{
"type": "PACKAGE",
"url": "https://github.com/Kludex/python-multipart"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
"type": "CVSS_V3"
}
],
"summary": "python-multipart: Semicolon treated as querystring field separator enables parameter smuggling"
}
OPENSUSE-SU-2026:11099-1
Vulnerability from csaf_opensuse - Published: 2026-06-22 00:00 - Updated: 2026-06-22 00:00| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64 | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64 | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64 | — |
Vendor Fix
|
{
"document": {
"aggregate_severity": {
"namespace": "https://www.suse.com/support/security/rating/",
"text": "moderate"
},
"category": "csaf_security_advisory",
"csaf_version": "2.0",
"distribution": {
"text": "Copyright 2024 SUSE LLC. All rights reserved.",
"tlp": {
"label": "WHITE",
"url": "https://www.first.org/tlp/"
}
},
"lang": "en",
"notes": [
{
"category": "summary",
"text": "python311-python-multipart-0.0.32-1.1 on GA media",
"title": "Title of the patch"
},
{
"category": "description",
"text": "These are all security issues fixed in the python311-python-multipart-0.0.32-1.1 package on the GA media of openSUSE Tumbleweed.",
"title": "Description of the patch"
},
{
"category": "details",
"text": "openSUSE-Tumbleweed-2026-11099",
"title": "Patchnames"
},
{
"category": "legal_disclaimer",
"text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).",
"title": "Terms of use"
}
],
"publisher": {
"category": "vendor",
"contact_details": "https://www.suse.com/support/security/contact/",
"name": "SUSE Product Security Team",
"namespace": "https://www.suse.com/"
},
"references": [
{
"category": "external",
"summary": "SUSE ratings",
"url": "https://www.suse.com/support/security/rating/"
},
{
"category": "self",
"summary": "URL of this CSAF notice",
"url": "https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_11099-1.json"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-53537 page",
"url": "https://www.suse.com/security/cve/CVE-2026-53537/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-53538 page",
"url": "https://www.suse.com/security/cve/CVE-2026-53538/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-53540 page",
"url": "https://www.suse.com/security/cve/CVE-2026-53540/"
}
],
"title": "python311-python-multipart-0.0.32-1.1 on GA media",
"tracking": {
"current_release_date": "2026-06-22T00:00:00Z",
"generator": {
"date": "2026-06-22T00:00:00Z",
"engine": {
"name": "cve-database.git:bin/generate-csaf.pl",
"version": "1"
}
},
"id": "openSUSE-SU-2026:11099-1",
"initial_release_date": "2026-06-22T00:00:00Z",
"revision_history": [
{
"date": "2026-06-22T00:00:00Z",
"number": "1",
"summary": "Current version"
}
],
"status": "final",
"version": "1"
}
},
"product_tree": {
"branches": [
{
"branches": [
{
"branches": [
{
"category": "product_version",
"name": "python311-python-multipart-0.0.32-1.1.aarch64",
"product": {
"name": "python311-python-multipart-0.0.32-1.1.aarch64",
"product_id": "python311-python-multipart-0.0.32-1.1.aarch64"
}
},
{
"category": "product_version",
"name": "python313-python-multipart-0.0.32-1.1.aarch64",
"product": {
"name": "python313-python-multipart-0.0.32-1.1.aarch64",
"product_id": "python313-python-multipart-0.0.32-1.1.aarch64"
}
},
{
"category": "product_version",
"name": "python314-python-multipart-0.0.32-1.1.aarch64",
"product": {
"name": "python314-python-multipart-0.0.32-1.1.aarch64",
"product_id": "python314-python-multipart-0.0.32-1.1.aarch64"
}
}
],
"category": "architecture",
"name": "aarch64"
},
{
"branches": [
{
"category": "product_version",
"name": "python311-python-multipart-0.0.32-1.1.ppc64le",
"product": {
"name": "python311-python-multipart-0.0.32-1.1.ppc64le",
"product_id": "python311-python-multipart-0.0.32-1.1.ppc64le"
}
},
{
"category": "product_version",
"name": "python313-python-multipart-0.0.32-1.1.ppc64le",
"product": {
"name": "python313-python-multipart-0.0.32-1.1.ppc64le",
"product_id": "python313-python-multipart-0.0.32-1.1.ppc64le"
}
},
{
"category": "product_version",
"name": "python314-python-multipart-0.0.32-1.1.ppc64le",
"product": {
"name": "python314-python-multipart-0.0.32-1.1.ppc64le",
"product_id": "python314-python-multipart-0.0.32-1.1.ppc64le"
}
}
],
"category": "architecture",
"name": "ppc64le"
},
{
"branches": [
{
"category": "product_version",
"name": "python311-python-multipart-0.0.32-1.1.s390x",
"product": {
"name": "python311-python-multipart-0.0.32-1.1.s390x",
"product_id": "python311-python-multipart-0.0.32-1.1.s390x"
}
},
{
"category": "product_version",
"name": "python313-python-multipart-0.0.32-1.1.s390x",
"product": {
"name": "python313-python-multipart-0.0.32-1.1.s390x",
"product_id": "python313-python-multipart-0.0.32-1.1.s390x"
}
},
{
"category": "product_version",
"name": "python314-python-multipart-0.0.32-1.1.s390x",
"product": {
"name": "python314-python-multipart-0.0.32-1.1.s390x",
"product_id": "python314-python-multipart-0.0.32-1.1.s390x"
}
}
],
"category": "architecture",
"name": "s390x"
},
{
"branches": [
{
"category": "product_version",
"name": "python311-python-multipart-0.0.32-1.1.x86_64",
"product": {
"name": "python311-python-multipart-0.0.32-1.1.x86_64",
"product_id": "python311-python-multipart-0.0.32-1.1.x86_64"
}
},
{
"category": "product_version",
"name": "python313-python-multipart-0.0.32-1.1.x86_64",
"product": {
"name": "python313-python-multipart-0.0.32-1.1.x86_64",
"product_id": "python313-python-multipart-0.0.32-1.1.x86_64"
}
},
{
"category": "product_version",
"name": "python314-python-multipart-0.0.32-1.1.x86_64",
"product": {
"name": "python314-python-multipart-0.0.32-1.1.x86_64",
"product_id": "python314-python-multipart-0.0.32-1.1.x86_64"
}
}
],
"category": "architecture",
"name": "x86_64"
},
{
"branches": [
{
"category": "product_name",
"name": "openSUSE Tumbleweed",
"product": {
"name": "openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed",
"product_identification_helper": {
"cpe": "cpe:/o:opensuse:tumbleweed"
}
}
}
],
"category": "product_family",
"name": "SUSE Linux Enterprise"
}
],
"category": "vendor",
"name": "SUSE"
}
],
"relationships": [
{
"category": "default_component_of",
"full_product_name": {
"name": "python311-python-multipart-0.0.32-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64"
},
"product_reference": "python311-python-multipart-0.0.32-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python311-python-multipart-0.0.32-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le"
},
"product_reference": "python311-python-multipart-0.0.32-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python311-python-multipart-0.0.32-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x"
},
"product_reference": "python311-python-multipart-0.0.32-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python311-python-multipart-0.0.32-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64"
},
"product_reference": "python311-python-multipart-0.0.32-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python313-python-multipart-0.0.32-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64"
},
"product_reference": "python313-python-multipart-0.0.32-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python313-python-multipart-0.0.32-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le"
},
"product_reference": "python313-python-multipart-0.0.32-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python313-python-multipart-0.0.32-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x"
},
"product_reference": "python313-python-multipart-0.0.32-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python313-python-multipart-0.0.32-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64"
},
"product_reference": "python313-python-multipart-0.0.32-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python314-python-multipart-0.0.32-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64"
},
"product_reference": "python314-python-multipart-0.0.32-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python314-python-multipart-0.0.32-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le"
},
"product_reference": "python314-python-multipart-0.0.32-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python314-python-multipart-0.0.32-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x"
},
"product_reference": "python314-python-multipart-0.0.32-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python314-python-multipart-0.0.32-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64"
},
"product_reference": "python314-python-multipart-0.0.32-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
}
]
},
"vulnerabilities": [
{
"cve": "CVE-2026-53537",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-53537"
}
],
"notes": [
{
"category": "general",
"text": "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\u0027lang\u0027value, 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.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-53537",
"url": "https://www.suse.com/security/cve/CVE-2026-53537"
},
{
"category": "external",
"summary": "SUSE Bug 1268506 for CVE-2026-53537",
"url": "https://bugzilla.suse.com/1268506"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 3.7,
"baseSeverity": "LOW",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
"version": "3.1"
},
"products": [
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-06-22T00:00:00Z",
"details": "low"
}
],
"title": "CVE-2026-53537"
},
{
"cve": "CVE-2026-53538",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-53538"
}
],
"notes": [
{
"category": "general",
"text": "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 \u0026. The WHATWG URL standard, modern browsers, and Python\u0027s urllib.parse (since the CVE-2021-23336 fix) treat only \u0026 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": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-53538",
"url": "https://www.suse.com/security/cve/CVE-2026-53538"
},
{
"category": "external",
"summary": "SUSE Bug 1268496 for CVE-2026-53538",
"url": "https://bugzilla.suse.com/1268496"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 3.7,
"baseSeverity": "LOW",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
"version": "3.1"
},
"products": [
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-06-22T00:00:00Z",
"details": "low"
}
],
"title": "CVE-2026-53538"
},
{
"cve": "CVE-2026-53540",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-53540"
}
],
"notes": [
{
"category": "general",
"text": "Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.31, parse_form() did not validate the Content-Length header before using it to bound its chunked read of the request body. A negative Content-Length turned the bounded read into a read-until-EOF, so the entire body was loaded into memory in a single read instead of in fixed-size chunks. This vulnerability is fixed in 0.0.31.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-53540",
"url": "https://www.suse.com/security/cve/CVE-2026-53540"
},
{
"category": "external",
"summary": "SUSE Bug 1268488 for CVE-2026-53540",
"url": "https://bugzilla.suse.com/1268488"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 3.7,
"baseSeverity": "LOW",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L",
"version": "3.1"
},
"products": [
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python311-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python313-python-multipart-0.0.32-1.1.x86_64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.aarch64",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.ppc64le",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.s390x",
"openSUSE Tumbleweed:python314-python-multipart-0.0.32-1.1.x86_64"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-06-22T00:00:00Z",
"details": "low"
}
],
"title": "CVE-2026-53540"
}
]
}
SUSE-SU-2026:22372-1
Vulnerability from csaf_suse - Published: 2026-06-26 07:58 - Updated: 2026-06-26 07:58| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch | — |
Vendor Fix
|
|
| Unresolved product id: SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch | — |
Vendor Fix
|
|
| Unresolved product id: SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch | — |
Vendor Fix
|
|
| Unresolved product id: SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch | — |
Vendor Fix
|
|
| Unresolved product id: SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch | — |
Vendor Fix
|
{
"document": {
"aggregate_severity": {
"namespace": "https://www.suse.com/support/security/rating/",
"text": "important"
},
"category": "csaf_security_advisory",
"csaf_version": "2.0",
"distribution": {
"text": "Copyright 2024 SUSE LLC. All rights reserved.",
"tlp": {
"label": "WHITE",
"url": "https://www.first.org/tlp/"
}
},
"lang": "en",
"notes": [
{
"category": "summary",
"text": "Security update for python-python-multipart",
"title": "Title of the patch"
},
{
"category": "description",
"text": "This update for python-python-multipart fixes the following issues\n\n- CVE-2026-53537: multipart/form-data with extended parameters can lead to file or parameter smuggling (bsc#1268506).\n- CVE-2026-53538: urlencoded requests containing semicolons can lead to form field smuggling (bsc#1268496).\n- CVE-2026-53539: small crafted body can cause a denial of service (bsc#1268500).\n- CVE-2026-53540: crafted request buffers can lead to degrading availability (bsc#1268488).\n",
"title": "Description of the patch"
},
{
"category": "details",
"text": "SUSE-SLES-16.0-1088",
"title": "Patchnames"
},
{
"category": "legal_disclaimer",
"text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).",
"title": "Terms of use"
}
],
"publisher": {
"category": "vendor",
"contact_details": "https://www.suse.com/support/security/contact/",
"name": "SUSE Product Security Team",
"namespace": "https://www.suse.com/"
},
"references": [
{
"category": "external",
"summary": "SUSE ratings",
"url": "https://www.suse.com/support/security/rating/"
},
{
"category": "self",
"summary": "URL of this CSAF notice",
"url": "https://ftp.suse.com/pub/projects/security/csaf/suse-su-2026_22372-1.json"
},
{
"category": "self",
"summary": "URL for SUSE-SU-2026:22372-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202622372-1/"
},
{
"category": "self",
"summary": "E-Mail link for SUSE-SU-2026:22372-1",
"url": "https://lists.suse.com/pipermail/sle-updates/2026-July/047767.html"
},
{
"category": "self",
"summary": "SUSE Bug 1268488",
"url": "https://bugzilla.suse.com/1268488"
},
{
"category": "self",
"summary": "SUSE Bug 1268496",
"url": "https://bugzilla.suse.com/1268496"
},
{
"category": "self",
"summary": "SUSE Bug 1268500",
"url": "https://bugzilla.suse.com/1268500"
},
{
"category": "self",
"summary": "SUSE Bug 1268506",
"url": "https://bugzilla.suse.com/1268506"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-53537 page",
"url": "https://www.suse.com/security/cve/CVE-2026-53537/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-53538 page",
"url": "https://www.suse.com/security/cve/CVE-2026-53538/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-53539 page",
"url": "https://www.suse.com/security/cve/CVE-2026-53539/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-53540 page",
"url": "https://www.suse.com/security/cve/CVE-2026-53540/"
}
],
"title": "Security update for python-python-multipart",
"tracking": {
"current_release_date": "2026-06-26T07:58:40Z",
"generator": {
"date": "2026-06-26T07:58:40Z",
"engine": {
"name": "cve-database.git:bin/generate-csaf.pl",
"version": "1"
}
},
"id": "SUSE-SU-2026:22372-1",
"initial_release_date": "2026-06-26T07:58:40Z",
"revision_history": [
{
"date": "2026-06-26T07:58:40Z",
"number": "1",
"summary": "Current version"
}
],
"status": "final",
"version": "1"
}
},
"product_tree": {
"branches": [
{
"branches": [
{
"branches": [
{
"category": "product_version",
"name": "python313-python-multipart-0.0.20-160000.5.1.noarch",
"product": {
"name": "python313-python-multipart-0.0.20-160000.5.1.noarch",
"product_id": "python313-python-multipart-0.0.20-160000.5.1.noarch"
}
}
],
"category": "architecture",
"name": "noarch"
},
{
"branches": [
{
"category": "product_name",
"name": "SUSE Linux Enterprise Server 16.0",
"product": {
"name": "SUSE Linux Enterprise Server 16.0",
"product_id": "SUSE Linux Enterprise Server 16.0",
"product_identification_helper": {
"cpe": "cpe:/o:suse:sles:16:16.0:server"
}
}
},
{
"category": "product_name",
"name": "SUSE Linux Enterprise Server for SAP applications 16.0",
"product": {
"name": "SUSE Linux Enterprise Server for SAP applications 16.0",
"product_id": "SUSE Linux Enterprise Server for SAP applications 16.0",
"product_identification_helper": {
"cpe": "cpe:/o:suse:sles:16:16.0:server-sap"
}
}
}
],
"category": "product_family",
"name": "SUSE Linux Enterprise"
}
],
"category": "vendor",
"name": "SUSE"
}
],
"relationships": [
{
"category": "default_component_of",
"full_product_name": {
"name": "python313-python-multipart-0.0.20-160000.5.1.noarch as component of SUSE Linux Enterprise Server 16.0",
"product_id": "SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
},
"product_reference": "python313-python-multipart-0.0.20-160000.5.1.noarch",
"relates_to_product_reference": "SUSE Linux Enterprise Server 16.0"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "python313-python-multipart-0.0.20-160000.5.1.noarch as component of SUSE Linux Enterprise Server for SAP applications 16.0",
"product_id": "SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
},
"product_reference": "python313-python-multipart-0.0.20-160000.5.1.noarch",
"relates_to_product_reference": "SUSE Linux Enterprise Server for SAP applications 16.0"
}
]
},
"vulnerabilities": [
{
"cve": "CVE-2026-53537",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-53537"
}
],
"notes": [
{
"category": "general",
"text": "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\u0027lang\u0027value, 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.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-53537",
"url": "https://www.suse.com/security/cve/CVE-2026-53537"
},
{
"category": "external",
"summary": "SUSE Bug 1268506 for CVE-2026-53537",
"url": "https://bugzilla.suse.com/1268506"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 3.7,
"baseSeverity": "LOW",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
"version": "3.1"
},
"products": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-06-26T07:58:40Z",
"details": "low"
}
],
"title": "CVE-2026-53537"
},
{
"cve": "CVE-2026-53538",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-53538"
}
],
"notes": [
{
"category": "general",
"text": "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 \u0026. The WHATWG URL standard, modern browsers, and Python\u0027s urllib.parse (since the CVE-2021-23336 fix) treat only \u0026 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": "CVE description"
}
],
"product_status": {
"recommended": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-53538",
"url": "https://www.suse.com/security/cve/CVE-2026-53538"
},
{
"category": "external",
"summary": "SUSE Bug 1268496 for CVE-2026-53538",
"url": "https://bugzilla.suse.com/1268496"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 3.7,
"baseSeverity": "LOW",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
"version": "3.1"
},
"products": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-06-26T07:58:40Z",
"details": "low"
}
],
"title": "CVE-2026-53538"
},
{
"cve": "CVE-2026-53539",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-53539"
}
],
"notes": [
{
"category": "general",
"text": "Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.30, when parsing application/x-www-form-urlencoded bodies, QuerystringParser located the field separator with a two step lookup: it first scanned the entire remaining buffer for \u0026, and only when no \u0026 existed anywhere ahead did it fall back to scanning for ;. For a body that uses ; as the separator and contains no \u0026, every field iteration performed a full failed \u0026 scan over the entire remaining buffer before locating the nearby ;. With N semicolon separated fields in a chunk of size B, this yields O(B^2) byte comparisons per chunk. An attacker can submit a small crafted body of the form a;a;a;... and cause the parser to spend seconds of CPU per request. A handful of concurrent requests can exhaust worker processes. This vulnerability is fixed in 0.0.30.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-53539",
"url": "https://www.suse.com/security/cve/CVE-2026-53539"
},
{
"category": "external",
"summary": "SUSE Bug 1268500 for CVE-2026-53539",
"url": "https://bugzilla.suse.com/1268500"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.1"
},
"products": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-06-26T07:58:40Z",
"details": "important"
}
],
"title": "CVE-2026-53539"
},
{
"cve": "CVE-2026-53540",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-53540"
}
],
"notes": [
{
"category": "general",
"text": "Python-Multipart is a streaming multipart parser for Python. Prior to 0.0.31, parse_form() did not validate the Content-Length header before using it to bound its chunked read of the request body. A negative Content-Length turned the bounded read into a read-until-EOF, so the entire body was loaded into memory in a single read instead of in fixed-size chunks. This vulnerability is fixed in 0.0.31.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-53540",
"url": "https://www.suse.com/security/cve/CVE-2026-53540"
},
{
"category": "external",
"summary": "SUSE Bug 1268488 for CVE-2026-53540",
"url": "https://bugzilla.suse.com/1268488"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 3.7,
"baseSeverity": "LOW",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L",
"version": "3.1"
},
"products": [
"SUSE Linux Enterprise Server 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch",
"SUSE Linux Enterprise Server for SAP applications 16.0:python313-python-multipart-0.0.20-160000.5.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-06-26T07:58:40Z",
"details": "low"
}
],
"title": "CVE-2026-53540"
}
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.