<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 Oct 2026 13:56:43 +0000</lastBuildDate>
    <item>
      <title>CVE-2024-24762 — python-multipart vulnerable to content-type header Regular expression Denial of Service</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2024-24762</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Kludex python-multipart, tiangolo fastapi, encode starlette&lt;/p&gt;
&lt;p&gt;`python-multipart` is a streaming multipart parser for Python. When using form data, `python-multipart` uses a Regular Expression to parse the HTTP `Content-Type` header, including options. An attacker could send a custom-made `Content-Type` option that is very difficult for the RegEx to process, consuming CPU resources and stalling indefinitely (minutes or more) while holding the main event loop. This means that process can&amp;#39;t handle any more requests, leading to regular expression denial of service. This vulnerability has been patched in version 0.0.7.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Kludex python-multipart, tiangolo fastapi, encode starlette&lt;/p&gt;
&lt;p&gt;`python-multipart` is a streaming multipart parser for Python. When using form data, `python-multipart` uses a Regular Expression to parse the HTTP `Content-Type` header, including options. An attacker could send a custom-made `Content-Type` option that is very difficult for the RegEx to process, consuming CPU resources and stalling indefinitely (minutes or more) while holding the main event loop. This means that process can&amp;#39;t handle any more requests, leading to regular expression denial of service. This vulnerability has been patched in version 0.0.7.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2024-24762</guid>
    </item>
    <item>
      <title>GHSA-2jv5-9r88-3w3p — python-multipart vulnerable to Content-Type Header ReDoS</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-2jv5-9r88-3w3p</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: python-multipart&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;When using form data, `python-multipart` uses a Regular Expression to parse the HTTP `Content-Type` header, including options.&lt;/p&gt;
&lt;p&gt;An attacker could send a custom-made `Content-Type` option that is very difficult for the RegEx to process, consuming CPU resources and stalling indefinitely (minutes or more) while holding the main event loop. This means that process can&amp;#39;t handle any more requests.&lt;/p&gt;
&lt;p&gt;This can create a ReDoS (Regular expression Denial of Service): https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS&lt;/p&gt;
&lt;p&gt;This only applies when the app uses form data, parsed with `python-multipart`.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;A regular HTTP `Content-Type` header could look like:&lt;/p&gt;
&lt;p&gt;```
Content-Type: text/html; charset=utf-8
```&lt;/p&gt;
&lt;p&gt;`python-multipart` parses the option with this RegEx: https://github.com/andrew-d/python-multipart/blob/d3d16dae4b061c34fe9d3c9081d9800c49fc1f7a/multipart/multipart.py#L72-L74&lt;/p&gt;
&lt;p&gt;A custom option could be made and sent to the server to break it with:&lt;/p&gt;
&lt;p&gt;```
Content-Type: application/x-www-form-urlencoded; !=\&amp;#34;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
```&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;Create a simple WSGI application, that just parses the `Content-Type`, and run it with `python main.py`:&lt;/p&gt;
&lt;p&gt;```Python
# main.py
from wsgiref.simple_server import make_server
from wsgiref.vali…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: python-multipart&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;When using form data, `python-multipart` uses a Regular Expression to parse the HTTP `Content-Type` header, including options.&lt;/p&gt;
&lt;p&gt;An attacker could send a custom-made `Content-Type` option that is very difficult for the RegEx to process, consuming CPU resources and stalling indefinitely (minutes or more) while holding the main event loop. This means that process can&amp;#39;t handle any more requests.&lt;/p&gt;
&lt;p&gt;This can create a ReDoS (Regular expression Denial of Service): https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS&lt;/p&gt;
&lt;p&gt;This only applies when the app uses form data, parsed with `python-multipart`.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;A regular HTTP `Content-Type` header could look like:&lt;/p&gt;
&lt;p&gt;```
Content-Type: text/html; charset=utf-8
```&lt;/p&gt;
&lt;p&gt;`python-multipart` parses the option with this RegEx: https://github.com/andrew-d/python-multipart/blob/d3d16dae4b061c34fe9d3c9081d9800c49fc1f7a/multipart/multipart.py#L72-L74&lt;/p&gt;
&lt;p&gt;A custom option could be made and sent to the server to break it with:&lt;/p&gt;
&lt;p&gt;```
Content-Type: application/x-www-form-urlencoded; !=\&amp;#34;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
```&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;Create a simple WSGI application, that just parses the `Content-Type`, and run it with `python main.py`:&lt;/p&gt;
&lt;p&gt;```Python
# main.py
from wsgiref.simple_server import make_server
from wsgiref.vali…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-2jv5-9r88-3w3p</guid>
    </item>
    <item>
      <title>PYSEC-2024-38</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2024-38</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: fastapi&lt;/p&gt;
&lt;p&gt;FastAPI is a web framework for building APIs with Python 3.8+ based on standard Python type hints. When using form data, `python-multipart` uses a Regular Expression to parse the HTTP `Content-Type` header, including options. An attacker could send a custom-made `Content-Type` option that is very difficult for the RegEx to process, consuming CPU resources and stalling indefinitely (minutes or more) while holding the main event loop. This means that process can&amp;#39;t handle any more requests. It&amp;#39;s a ReDoS(Regular expression Denial of Service), it only applies to those reading form data, using `python-multipart`. This vulnerability has been patched in version 0.109.1.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: fastapi&lt;/p&gt;
&lt;p&gt;FastAPI is a web framework for building APIs with Python 3.8+ based on standard Python type hints. When using form data, `python-multipart` uses a Regular Expression to parse the HTTP `Content-Type` header, including options. An attacker could send a custom-made `Content-Type` option that is very difficult for the RegEx to process, consuming CPU resources and stalling indefinitely (minutes or more) while holding the main event loop. This means that process can&amp;#39;t handle any more requests. It&amp;#39;s a ReDoS(Regular expression Denial of Service), it only applies to those reading form data, using `python-multipart`. This vulnerability has been patched in version 0.109.1.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2024-38</guid>
    </item>
  </channel>
</rss>
