<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-28T16:18:13.776554+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/cve-2026-53538</id>
    <title>CVE-2026-53538 — Python-Multipart: Semicolon treated as querystring field separator enables parameter smuggling</title>
    <updated>2026-09-28T16:18:13.780312+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Kludex python-multipart</p>
<p>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 &amp;. The WHATWG URL standard, modern browsers, and Python's urllib.parse (since the CVE-2021-23336 fix) treat only &amp; 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.</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/cve-2026-53538"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-6jv3-5f52-599m</id>
    <title>GHSA-6jv3-5f52-599m — python-multipart: Semicolon treated as querystring field separator enables parameter smuggling</title>
    <updated>2026-09-28T16:18:13.780428+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: python-multipart</p>
<p>### Summary</p>
<p>`QuerystringParser` treated `;` as a field separator in `application/x-www-form-urlencoded` bodies, in addition to `&amp;`. The [WHATWG URL standard](https://url.spec.whatwg.org/#urlencoded-parsing), modern browsers, and Python's `urllib.parse` (since the CVE-2021-23336 fix) treat only `&amp;` 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.</p>
<p>### Details</p>
<p>In `python_multipart/multipart.py`, the `FIELD_NAME` and `FIELD_DATA` states located the next separator by scanning for `&amp;` and, failing that, for `;`:</p>
<p>```python
sep_pos = data.find(b"&amp;", i)
if sep_pos == -1:
    sep_pos = data.find(b";", i)
```</p>
<p>As a result, `;` acted as a field boundary. Because the fallback only triggered when no `&amp;` 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`.</p>
<p>For example, a body inspecting WAF or gateway that follows the WHATWG rule (only `&amp;` separates fields) receives:</p>
<p>```
role=user&amp;x=;role=admin
```</p>
<p>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…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-6jv3-5f52-599m"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/pysec-2026-3037</id>
    <title>PYSEC-2026-3037 — python-multipart: Semicolon treated as querystring field separator enables parameter smuggling</title>
    <updated>2026-09-28T16:18:13.780520+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: python-multipart</p>
<p>### Summary</p>
<p>`QuerystringParser` treated `;` as a field separator in `application/x-www-form-urlencoded` bodies, in addition to `&amp;`. The [WHATWG URL standard](https://url.spec.whatwg.org/#urlencoded-parsing), modern browsers, and Python's `urllib.parse` (since the CVE-2021-23336 fix) treat only `&amp;` 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.</p>
<p>### Details</p>
<p>In `python_multipart/multipart.py`, the `FIELD_NAME` and `FIELD_DATA` states located the next separator by scanning for `&amp;` and, failing that, for `;`:</p>
<p>```python
sep_pos = data.find(b"&amp;", i)
if sep_pos == -1:
    sep_pos = data.find(b";", i)
```</p>
<p>As a result, `;` acted as a field boundary. Because the fallback only triggered when no `&amp;` 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`.</p>
<p>For example, a body inspecting WAF or gateway that follows the WHATWG rule (only `&amp;` separates fields) receives:</p>
<p>```
role=user&amp;x=;role=admin
```</p>
<p>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…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/pysec-2026-3037"/>
  </entry>
</feed>
