<?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://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-16T23:03:33.173525+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" 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://cve.radiocsirt.org/vuln/cve-2026-45338</id>
    <title>CVE-2026-45338 — Open WebUI: SSRF via OAuth Profile Picture URL in _process_picture_url (oauth.py)</title>
    <updated>2026-10-16T23:03:33.175475+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> open-webui</p>
<p>Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.0, a Server-Side Request Forgery (SSRF) vulnerability exists in _process_picture_url() in backend/open_webui/utils/oauth.py (line ~1338). The function fetches arbitrary URLs from OAuth picture claims without applying validate_url(), allowing an attacker to force the server to make HTTP requests to internal resources and exfiltrate the full response. This vulnerability is fixed in 0.9.0.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/cve-2026-45338"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/pysec-2026-2691</id>
    <title>PYSEC-2026-2691 — Open WebUI Vulnerable to SSRF via OAuth Profile Picture URL in _process_picture_url (oauth.py)</title>
    <updated>2026-10-16T23:03:33.175542+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: open-webui</p>
<p>## Summary</p>
<p>A Server-Side Request Forgery (SSRF) vulnerability exists in `_process_picture_url()` in `backend/open_webui/utils/oauth.py` (line ~1338). The function fetches arbitrary URLs from OAuth `picture` claims without applying `validate_url()`, allowing an attacker to force the server to make HTTP requests to internal resources and exfiltrate the full response.</p>
<p>## Vulnerable Code
```python
# backend/open_webui/utils/oauth.py, line ~1337-1345
async def _process_picture_url(self, picture_url: str, access_token: str = None) -&gt; str:
    # No validate_url() call here
    async with aiohttp.ClientSession(trust_env=True) as session:
        async with session.get(picture_url, **get_kwargs, ssl=AIOHTTP_CLIENT_SESSION_SSL) as resp:
            if resp.ok:
                picture = await resp.read()
                base64_encoded_picture = base64.b64encode(picture).decode('utf-8')
                return f'data:{guessed_mime_type};base64,{base64_encoded_picture}'
```</p>
<p>The codebase already uses `validate_url()` for the same SSRF protection pattern in other paths:
- `backend/open_webui/utils/files.py:38` - `validate_url(url)` before `requests.get(url)`
- `backend/open_webui/routers/images.py:800` - `validate_url(data)` before `requests.get(data)`</p>
<p>The omission in `_process_picture_url()` is inconsistent with the project's own security practices.</p>
<p>## Affected Code Paths</p>
<p>1. **New user OAuth signup** (line ~1556): `picture_url = await self._process_picture_url(picture_url, token.get(…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/pysec-2026-2691"/>
  </entry>
</feed>
