<?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://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-03T04:06:46.808652+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" 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://vulnerability.circl.lu/vuln/cve-2026-54018</id>
    <title>CVE-2026-54018 — Open WebUI: SSRF Protection Bypass in Playwright Web Loader via HTTP Redirects</title>
    <updated>2026-10-03T04:06:47.174571+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.6, the SafePlaywrightURLLoader implements a validate_url function to prevent SSRF attacks by checking the IP address of the user-provided URL. However, this validation is performed only on the initial URL. Since Playwright automatically follows HTTP redirects (301/302) by default, an attacker can bypass the validation by providing a safe URL that redirects to a restricted internal network address (e.g., localhost, Docker container network, or Cloud Metadata). This allows the application to access internal services despite ENABLE_RAG_LOCAL_WEB_FETCH being set to False This vulnerability is fixed in 0.9.6.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-54018"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-jrfp-m64g-pcwv</id>
    <title>GHSA-jrfp-m64g-pcwv — Open WebUI: SSRF Protection Bypass in Playwright Web Loader via HTTP Redirects</title>
    <updated>2026-10-03T04:06:47.174801+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: open-webui</p>
<p>### Summary
The SafePlaywrightURLLoader implements a validate_url function to prevent SSRF attacks by checking the IP address of the user-provided URL. However, this validation is performed only on the initial URL.</p>
<p>Since Playwright automatically follows HTTP redirects (301/302) by default, an attacker can bypass the validation by providing a safe URL that redirects to a restricted internal network address (e.g., localhost, Docker container network, or Cloud Metadata).</p>
<p>This allows the application to access internal services despite ENABLE_RAG_LOCAL_WEB_FETCH being set to False</p>
<p>### Details
Root Cause</p>
<p>The application validates the initial user-provided URL using self._safe_process_url_sync(url). This correctly resolves the domain and ensures it does not point to a private IP.</p>
<p>The application then calls page.goto(url). By default, Playwright automatically follows HTTP redirects (301/302).</p>
<p>The Bypass: If the destination server returns a redirect to an internal IP (e.g., 127.0.0.1 or 169.254.169.254), the browser follows it without re-validating the new destination. The initial validation is bypassed because it only checked the first URL, not the entire redirect chain.</p>
<p>```python
for url in self.urls:
    try:
        self._safe_process_url_sync(url)  
        page = browser.new_page()
        response = page.goto(url, timeout=self.playwright_timeout)  #this
        if response is None:
            raise ValueError(...)
        text = self.evaluator.evaluate(page, browser, r…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-jrfp-m64g-pcwv"/>
  </entry>
</feed>
