<?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>Sat, 03 Oct 2026 06:09:28 +0000</lastBuildDate>
    <item>
      <title>bdu:2026-09644</title>
      <link>https://cve.radiocsirt.org/vuln/bdu:2026-09644</link>
      <description>bdu:2026-09644</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/bdu:2026-09644</guid>
    </item>
    <item>
      <title>EUVD-2026-319100</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-319100</link>
      <description>EUVD-2026-319100</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-319100</guid>
    </item>
    <item>
      <title>fkie_cve-2026-44562</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-44562</link>
      <description>&lt;p&gt;Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, the POST /api/v1/models/import endpoint allows users with the workspace.models_import permission to overwrite any existing model in the database, regardless of ownership. When an imported model&amp;#39;s ID matches an existing model, the endpoint merges the attacker&amp;#39;s payload over the existing model data and writes it to the database with no ownership or access grant validation. Additionally, filter_allowed_access_grants is never called, bypassing the access grant restrictions enforced on all other model mutation endpoints. This vulnerability is fixed in 0.9.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, the POST /api/v1/models/import endpoint allows users with the workspace.models_import permission to overwrite any existing model in the database, regardless of ownership. When an imported model&amp;#39;s ID matches an existing model, the endpoint merges the attacker&amp;#39;s payload over the existing model data and writes it to the database with no ownership or access grant validation. Additionally, filter_allowed_access_grants is never called, bypassing the access grant restrictions enforced on all other model mutation endpoints. This vulnerability is fixed in 0.9.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-44562</guid>
    </item>
    <item>
      <title>GHSA-mqq6-cqcx-38vg — Open WebUI's Model Import Overwrites Any Model Without Ownership Check</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-mqq6-cqcx-38vg</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: open-webui&lt;/p&gt;
&lt;p&gt;# Model Import Overwrites Any Model Without Ownership Check&lt;/p&gt;
&lt;p&gt;## Affected Component&lt;/p&gt;
&lt;p&gt;Model import endpoint:
- `backend/open_webui/routers/models.py` (lines 254-308, `import_models`)&lt;/p&gt;
&lt;p&gt;## Affected Versions&lt;/p&gt;
&lt;p&gt;Current main branch (commit `6fdd19bf1`) and likely all versions with model import functionality.&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;The `POST /api/v1/models/import` endpoint allows users with the `workspace.models_import` permission to overwrite any existing model in the database, regardless of ownership. When an imported model&amp;#39;s ID matches an existing model, the endpoint merges the attacker&amp;#39;s payload over the existing model data and writes it to the database with no ownership or access grant validation. Additionally, `filter_allowed_access_grants` is never called, bypassing the access grant restrictions enforced on all other model mutation endpoints.&lt;/p&gt;
&lt;p&gt;```python
# Line 280 — fetches existing model with NO ownership check
existing_models_dict = {m.id: m for m in Models.get_models_by_ids(model_ids, db=db)}&lt;/p&gt;
&lt;p&gt;# Line 295 — attacker&amp;#39;s data overrides existing model fields
form = ModelForm(**{**existing_model.model_dump(), **model_data})&lt;/p&gt;
&lt;p&gt;# Line 296 — writes directly, never calls filter_allowed_access_grants
Models.update_model_by_id(model_id, form, db=db)
```&lt;/p&gt;
&lt;p&gt;Compare with properly-guarded endpoints:
- `update_model_by_id` (line 499): checks ownership/write access AND calls `filter_allowed_access_grants`
- `update_model_access_by_id` (line 571): checks ownership/write access AND calls `filter_allow…&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;# Model Import Overwrites Any Model Without Ownership Check&lt;/p&gt;
&lt;p&gt;## Affected Component&lt;/p&gt;
&lt;p&gt;Model import endpoint:
- `backend/open_webui/routers/models.py` (lines 254-308, `import_models`)&lt;/p&gt;
&lt;p&gt;## Affected Versions&lt;/p&gt;
&lt;p&gt;Current main branch (commit `6fdd19bf1`) and likely all versions with model import functionality.&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;The `POST /api/v1/models/import` endpoint allows users with the `workspace.models_import` permission to overwrite any existing model in the database, regardless of ownership. When an imported model&amp;#39;s ID matches an existing model, the endpoint merges the attacker&amp;#39;s payload over the existing model data and writes it to the database with no ownership or access grant validation. Additionally, `filter_allowed_access_grants` is never called, bypassing the access grant restrictions enforced on all other model mutation endpoints.&lt;/p&gt;
&lt;p&gt;```python
# Line 280 — fetches existing model with NO ownership check
existing_models_dict = {m.id: m for m in Models.get_models_by_ids(model_ids, db=db)}&lt;/p&gt;
&lt;p&gt;# Line 295 — attacker&amp;#39;s data overrides existing model fields
form = ModelForm(**{**existing_model.model_dump(), **model_data})&lt;/p&gt;
&lt;p&gt;# Line 296 — writes directly, never calls filter_allowed_access_grants
Models.update_model_by_id(model_id, form, db=db)
```&lt;/p&gt;
&lt;p&gt;Compare with properly-guarded endpoints:
- `update_model_by_id` (line 499): checks ownership/write access AND calls `filter_allowed_access_grants`
- `update_model_access_by_id` (line 571): checks ownership/write access AND calls `filter_allow…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-mqq6-cqcx-38vg</guid>
    </item>
    <item>
      <title>PYSEC-2026-2749 — Open WebUI's Model Import Overwrites Any Model Without Ownership Check</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-2749</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: open-webui&lt;/p&gt;
&lt;p&gt;# Model Import Overwrites Any Model Without Ownership Check&lt;/p&gt;
&lt;p&gt;## Affected Component&lt;/p&gt;
&lt;p&gt;Model import endpoint:
- `backend/open_webui/routers/models.py` (lines 254-308, `import_models`)&lt;/p&gt;
&lt;p&gt;## Affected Versions&lt;/p&gt;
&lt;p&gt;Current main branch (commit `6fdd19bf1`) and likely all versions with model import functionality.&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;The `POST /api/v1/models/import` endpoint allows users with the `workspace.models_import` permission to overwrite any existing model in the database, regardless of ownership. When an imported model&amp;#39;s ID matches an existing model, the endpoint merges the attacker&amp;#39;s payload over the existing model data and writes it to the database with no ownership or access grant validation. Additionally, `filter_allowed_access_grants` is never called, bypassing the access grant restrictions enforced on all other model mutation endpoints.&lt;/p&gt;
&lt;p&gt;```python
# Line 280 — fetches existing model with NO ownership check
existing_models_dict = {m.id: m for m in Models.get_models_by_ids(model_ids, db=db)}&lt;/p&gt;
&lt;p&gt;# Line 295 — attacker&amp;#39;s data overrides existing model fields
form = ModelForm(**{**existing_model.model_dump(), **model_data})&lt;/p&gt;
&lt;p&gt;# Line 296 — writes directly, never calls filter_allowed_access_grants
Models.update_model_by_id(model_id, form, db=db)
```&lt;/p&gt;
&lt;p&gt;Compare with properly-guarded endpoints:
- `update_model_by_id` (line 499): checks ownership/write access AND calls `filter_allowed_access_grants`
- `update_model_access_by_id` (line 571): checks ownership/write access AND calls `filter_allow…&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;# Model Import Overwrites Any Model Without Ownership Check&lt;/p&gt;
&lt;p&gt;## Affected Component&lt;/p&gt;
&lt;p&gt;Model import endpoint:
- `backend/open_webui/routers/models.py` (lines 254-308, `import_models`)&lt;/p&gt;
&lt;p&gt;## Affected Versions&lt;/p&gt;
&lt;p&gt;Current main branch (commit `6fdd19bf1`) and likely all versions with model import functionality.&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;The `POST /api/v1/models/import` endpoint allows users with the `workspace.models_import` permission to overwrite any existing model in the database, regardless of ownership. When an imported model&amp;#39;s ID matches an existing model, the endpoint merges the attacker&amp;#39;s payload over the existing model data and writes it to the database with no ownership or access grant validation. Additionally, `filter_allowed_access_grants` is never called, bypassing the access grant restrictions enforced on all other model mutation endpoints.&lt;/p&gt;
&lt;p&gt;```python
# Line 280 — fetches existing model with NO ownership check
existing_models_dict = {m.id: m for m in Models.get_models_by_ids(model_ids, db=db)}&lt;/p&gt;
&lt;p&gt;# Line 295 — attacker&amp;#39;s data overrides existing model fields
form = ModelForm(**{**existing_model.model_dump(), **model_data})&lt;/p&gt;
&lt;p&gt;# Line 296 — writes directly, never calls filter_allowed_access_grants
Models.update_model_by_id(model_id, form, db=db)
```&lt;/p&gt;
&lt;p&gt;Compare with properly-guarded endpoints:
- `update_model_by_id` (line 499): checks ownership/write access AND calls `filter_allowed_access_grants`
- `update_model_access_by_id` (line 571): checks ownership/write access AND calls `filter_allow…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-2749</guid>
    </item>
  </channel>
</rss>
