<?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://cve.radiocsirt.org</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>Sun, 18 Oct 2026 11:45:00 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-44550 — Open WebUI: Mass Assignment via Pydantic extra='allow' Allows Creating Folders in Other Users' Accounts</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-44550</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; open-webui&lt;/p&gt;
&lt;p&gt;Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, FolderForm uses model_config = ConfigDict(extra=&amp;#39;allow&amp;#39;), which permits arbitrary fields to pass through Pydantic validation and be included in model_dump(exclude_unset=True). In insert_new_folder, the server-assigned user_id is placed at the start of the dict and then overwritten by the spread of form data. Because FolderModel declares user_id: str as a real field (not just a form extra), any attacker-supplied user_id in the POST body is accepted by the model and persisted on the Folder row. This vulnerability is fixed in 0.9.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; open-webui&lt;/p&gt;
&lt;p&gt;Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, FolderForm uses model_config = ConfigDict(extra=&amp;#39;allow&amp;#39;), which permits arbitrary fields to pass through Pydantic validation and be included in model_dump(exclude_unset=True). In insert_new_folder, the server-assigned user_id is placed at the start of the dict and then overwritten by the spread of form data. Because FolderModel declares user_id: str as a real field (not just a form extra), any attacker-supplied user_id in the POST body is accepted by the model and persisted on the Folder row. This vulnerability is fixed in 0.9.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-44550</guid>
    </item>
    <item>
      <title>GHSA-hr43-rjmr-7wmm — Open WebUI's Mass Assignment via Pydantic extra='allow' Allows Creating Folders in Other Users' Accounts</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-hr43-rjmr-7wmm</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: open-webui&lt;/p&gt;
&lt;p&gt;# Mass Assignment via Pydantic extra=&amp;#39;allow&amp;#39; Allows Creating Folders in Other Users&amp;#39; Accounts&lt;/p&gt;
&lt;p&gt;## Affected Component&lt;/p&gt;
&lt;p&gt;Folder creation endpoint and form model:
- `backend/open_webui/models/folders.py` (lines 72-77, `FolderForm` with `extra=&amp;#39;allow&amp;#39;`)
- `backend/open_webui/models/folders.py` (lines 95-106, `insert_new_folder` dict construction)
- `backend/open_webui/routers/folders.py` (line 119, `create_folder` endpoint)&lt;/p&gt;
&lt;p&gt;## Affected Versions&lt;/p&gt;
&lt;p&gt;Current main branch (commit `6fdd19bf1`) and likely all versions since `FolderForm` adopted `extra=&amp;#39;allow&amp;#39;`.&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;`FolderForm` uses `model_config = ConfigDict(extra=&amp;#39;allow&amp;#39;)`, which permits arbitrary fields to pass through Pydantic validation and be included in `model_dump(exclude_unset=True)`. In `insert_new_folder`, the server-assigned `user_id` is placed at the start of the dict and then overwritten by the spread of form data:&lt;/p&gt;
&lt;p&gt;```python
# models/folders.py:95-106
folder = FolderModel(
    **{
        &amp;#39;id&amp;#39;: id,                                              # server
        &amp;#39;user_id&amp;#39;: user_id,                                    # server — overwritten below
        **(form_data.model_dump(exclude_unset=True) or {}),    # user-controlled (extra=&amp;#39;allow&amp;#39;)
        &amp;#39;parent_id&amp;#39;: parent_id,
        &amp;#39;created_at&amp;#39;: int(time.time()),
        &amp;#39;updated_at&amp;#39;: int(time.time()),
    }
)
```&lt;/p&gt;
&lt;p&gt;Because `FolderModel` declares `user_id: str` as a real field (not just a form extra), any attacker-supplied `user_id` in the POST body is accepted by th…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: open-webui&lt;/p&gt;
&lt;p&gt;# Mass Assignment via Pydantic extra=&amp;#39;allow&amp;#39; Allows Creating Folders in Other Users&amp;#39; Accounts&lt;/p&gt;
&lt;p&gt;## Affected Component&lt;/p&gt;
&lt;p&gt;Folder creation endpoint and form model:
- `backend/open_webui/models/folders.py` (lines 72-77, `FolderForm` with `extra=&amp;#39;allow&amp;#39;`)
- `backend/open_webui/models/folders.py` (lines 95-106, `insert_new_folder` dict construction)
- `backend/open_webui/routers/folders.py` (line 119, `create_folder` endpoint)&lt;/p&gt;
&lt;p&gt;## Affected Versions&lt;/p&gt;
&lt;p&gt;Current main branch (commit `6fdd19bf1`) and likely all versions since `FolderForm` adopted `extra=&amp;#39;allow&amp;#39;`.&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;`FolderForm` uses `model_config = ConfigDict(extra=&amp;#39;allow&amp;#39;)`, which permits arbitrary fields to pass through Pydantic validation and be included in `model_dump(exclude_unset=True)`. In `insert_new_folder`, the server-assigned `user_id` is placed at the start of the dict and then overwritten by the spread of form data:&lt;/p&gt;
&lt;p&gt;```python
# models/folders.py:95-106
folder = FolderModel(
    **{
        &amp;#39;id&amp;#39;: id,                                              # server
        &amp;#39;user_id&amp;#39;: user_id,                                    # server — overwritten below
        **(form_data.model_dump(exclude_unset=True) or {}),    # user-controlled (extra=&amp;#39;allow&amp;#39;)
        &amp;#39;parent_id&amp;#39;: parent_id,
        &amp;#39;created_at&amp;#39;: int(time.time()),
        &amp;#39;updated_at&amp;#39;: int(time.time()),
    }
)
```&lt;/p&gt;
&lt;p&gt;Because `FolderModel` declares `user_id: str` as a real field (not just a form extra), any attacker-supplied `user_id` in the POST body is accepted by th…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-hr43-rjmr-7wmm</guid>
    </item>
  </channel>
</rss>
