<?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-28T20:20:31.089821+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-53540</id>
    <title>CVE-2026-53540 — Python-Multipart: Negative Content-Length in parse_form buffers the entire body in memory</title>
    <updated>2026-09-28T20:20:31.092177+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.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.</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/cve-2026-53540"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-v9pg-7xvm-68hf</id>
    <title>GHSA-v9pg-7xvm-68hf — python-multipart: Negative Content-Length in parse_form buffers the entire body in memory</title>
    <updated>2026-09-28T20:20:31.092276+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>`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.</p>
<p>### Details</p>
<p>`parse_form()` reads the input stream in chunks, never reading more than the remaining `Content-Length` at a time. The per-chunk size is computed as `min(content_length - bytes_read, chunk_size)`. The header value was parsed to an integer without checking its sign, so a `Content-Length` of `-1` made this expression negative, and `input_stream.read(-1)` reads until end of stream. The intended bounded, chunked read therefore collapsed into a single unbounded read of the whole stream. The amount read is still bounded by what the client actually sends.</p>
<p>### Impact</p>
<p>This only affects code that calls `parse_form()` directly with a `Content-Length` header taken from attacker-controlled input and without normalizing a negative value first. No known package is affected:</p>
<p>* Starlette and FastAPI drive `MultipartParser` directly from the ASGI `receive()` stream and do not call `parse_form()`.
* Known `parse_form()` consumers either do not forward `Content-Length` to it, recompute it from the already-read body, or run behind a layer (such as Werkzeug) that normalizes a negative `Content-Length` to `0`.</p>
<p>The realistic exposure is limited to bespoke WSGI or `http.server` handle…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-v9pg-7xvm-68hf"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/pysec-2026-3040</id>
    <title>PYSEC-2026-3040 — python-multipart: Negative Content-Length in parse_form buffers the entire body in memory</title>
    <updated>2026-09-28T20:20:31.092326+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>`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.</p>
<p>### Details</p>
<p>`parse_form()` reads the input stream in chunks, never reading more than the remaining `Content-Length` at a time. The per-chunk size is computed as `min(content_length - bytes_read, chunk_size)`. The header value was parsed to an integer without checking its sign, so a `Content-Length` of `-1` made this expression negative, and `input_stream.read(-1)` reads until end of stream. The intended bounded, chunked read therefore collapsed into a single unbounded read of the whole stream. The amount read is still bounded by what the client actually sends.</p>
<p>### Impact</p>
<p>This only affects code that calls `parse_form()` directly with a `Content-Length` header taken from attacker-controlled input and without normalizing a negative value first. No known package is affected:</p>
<p>* Starlette and FastAPI drive `MultipartParser` directly from the ASGI `receive()` stream and do not call `parse_form()`.
* Known `parse_form()` consumers either do not forward `Content-Length` to it, recompute it from the already-read body, or run behind a layer (such as Werkzeug) that normalizes a negative `Content-Length` to `0`.</p>
<p>The realistic exposure is limited to bespoke WSGI or `http.server` handle…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/pysec-2026-3040"/>
  </entry>
</feed>
