<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Cpe:2.3:a:openwebui:open_webui:0.9.6:*:*:*:*:*:*:* - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/cpes/cpe2.3aopenwebuiopen_webui0.9.6/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 24 Jul 2026 21:07:22 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/cpes/cpe2.3aopenwebuiopen_webui0.9.6/feed.xml" rel="self" type="application/rss+xml"/><item><title>Open WebUI Terminal Proxy Path Traversal Bypass via 9x Encoding (CVE-2026-59221)</title><link>https://feed.craftedsignal.io/briefs/2026-07-open-webui-path-traversal-bypass/</link><pubDate>Fri, 24 Jul 2026 21:07:22 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-07-open-webui-path-traversal-bypass/</guid><description>An incomplete fix for a path traversal vulnerability in Open WebUI's terminal proxy allows authenticated attackers to bypass security checks by sending a 9x percent-encoded path, leading to requests being forwarded with terminal credentials and user identification headers to unintended arbitrary paths outside the intended proxy scope.</description><content:encoded><![CDATA[<p>A critical vulnerability, tracked as CVE-2026-59221, has been identified in Open WebUI versions equal to or greater than 0.9.6 but less than 0.10.0. This flaw is a bypass of a previous security fix (GHSA-r2wg-2mcr-66rv) in the <code>_sanitize_proxy_path()</code> function within <code>backend/open_webui/routers/terminals.py</code>. The sanitizer is intended to decode URL paths until stable to prevent directory traversal but fails when confronted with a 9x percent-encoded path traversal payload, such as <code>../admin/system</code>. This allows authenticated users with access to an admin-configured terminal connection to bypass the path traversal guard. Attackers can leverage this to send requests with the configured terminal credentials and <code>X-User-Id</code> header to arbitrary paths outside the intended proxy destination, potentially leading to unauthorized access or actions on the upstream terminal server. This issue does not require a malicious terminal server or social engineering to modify settings; it only requires normal access to an existing configured terminal connection.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An authenticated attacker gains access to an existing configured terminal connection within the Open WebUI application.</li>
<li>The attacker crafts a path traversal payload, such as <code>../admin/system</code>, and encodes it nine times (e.g., <code>%2525...%252Fadmin%252Fsystem</code>).</li>
<li>The attacker sends an HTTP request containing this highly encoded payload as part of the URI path or query parameter to an Open WebUI terminal proxy endpoint.</li>
<li>The ASGI server hosting Open WebUI performs an initial decoding pass on the HTTP path before passing it to the application's <code>_sanitize_proxy_path()</code> function.</li>
<li>The <code>_sanitize_proxy_path()</code> function attempts to decode the path eight times, but the 9x encoded payload remains once-encoded after these passes.</li>
<li>The subsequent security checks, including <code>posixpath.normpath()</code> and <code>cleaned.startswith('..')</code>, are bypassed because the path still contains percent-encoded characters, which are treated as ordinary strings.</li>
<li>Open WebUI constructs a <code>target_url</code> using the inadequately sanitized path and forwards the request to the configured upstream terminal server, including sensitive <code>X-User-Id</code> headers and terminal credentials.</li>
<li>The upstream terminal server receives the request, fully decodes the path (e.g., <code>/base/../admin/system</code>), and processes it, allowing the attacker to access paths outside the intended <code>/base/</code> directory and potentially execute unauthorized commands or access sensitive data.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of CVE-2026-59221 enables authenticated users to bypass Open WebUI's terminal proxy path traversal guard. This allows attackers to redirect requests, including configured terminal credentials and the <code>X-User-Id</code> header, to arbitrary paths on the upstream terminal server that are outside the intended proxy scope. For orchestrator-backed connections, this bypass can also target sibling or parent routes after upstream decoding. This could lead to unauthorized access to system resources, execution of unauthorized commands, or manipulation of data on the terminal server. The vulnerability can be exploited by any user with normal access to a configured terminal connection, increasing the risk of insider threat or account compromise.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li><strong>Patch CVE-2026-59221</strong>: Upgrade Open WebUI to version 0.10.0 or later as soon as it is available to address the incomplete sanitization logic.</li>
<li><strong>Implement URI Path Sanitization Rule</strong>: Deploy the provided Sigma rule to detect highly encoded path traversals in webserver logs targeting terminal proxy endpoints.</li>
<li><strong>Monitor Webserver Logs</strong>: Ensure comprehensive logging for web server access, specifically for <code>cs-uri-stem</code> and <code>cs-uri-query</code> fields, to identify unusual patterns of multi-percent-encoded characters.</li>
<li><strong>Review Terminal Server Access</strong>: Regularly audit access logs on configured terminal servers for requests originating from Open WebUI that target unusual or sensitive paths.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>path-traversal</category><category>web-application</category><category>vulnerability</category><category>open-webui</category><category>defense-evasion</category></item></channel></rss>