CVE-2026-59221: open-webui terminal proxy path traversal guard bypass via 9x encoded traversal
The fix for GHSA-r2wg-2mcr-66rv is incomplete in v0.9.6 and current main. backend/open_webui/routers/terminals.py documents _sanitize_proxy_path() as decoding until stable, but the implementation stops after 8 unquote() passes. A 9x percent-encoded ../... path parameter remains once-encoded after the loop, passes the posixpath.normpath() and cleaned.startswith('..') checks, and is forwarded to the configured terminal server. The upstream server then receives a decoded traversal path such as /base/../admin/system.
References
- github.com/advisories/GHSA-frvj-c5qp-xj4w
- github.com/open-webui/open-webui/commit/05098d25a58d03738e01c4e85e8852c3b4ad849c
- github.com/open-webui/open-webui/pull/26050
- github.com/open-webui/open-webui/releases/tag/v0.10.0
- github.com/open-webui/open-webui/security/advisories/GHSA-frvj-c5qp-xj4w
- nvd.nist.gov/vuln/detail/CVE-2026-59221
Code Behaviors & Features
Detect and mitigate CVE-2026-59221 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →