mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-06 10:58:17 -05:00
[GH-ISSUE #23788] issue: terminal websocket ignores session/system_oauth auth modes #35605
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @shaun0927 on GitHub (Apr 16, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23788
Check Existing Issues
Installation Method
Git Clone
Open WebUI Version
latest
mainas of 2026-04-16 (latest release also checked:v0.8.12)Ollama Version (if applicable)
No response
Operating System
macOS Sequoia
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
The terminal websocket proxy should support the same auth modes as the terminal HTTP proxy.
If
proxy_terminalsupportsbearer,session, andsystem_oauth, thenws_terminalshould not silently drop the non-bearer auth paths.Actual Behavior
proxy_terminalhandles:bearersessionsystem_oauthbut
ws_terminalonly sends upstream auth material whenauth_type == 'bearer'.That makes the websocket path behavior inconsistent with the HTTP proxy path.
This is not the same bug as
#22581(ws://vswss://under HTTPS).It is an auth-mode mismatch.
There was also a nearby closed PR
#23603(Fix terminal orchestrator ws auth), but the currentmain/v0.8.12code still shows the mismatch below.Steps to Reproduce
Current HTTP proxy path in
backend/open_webui/routers/terminals.py:Current websocket path:
A deterministic local reproduction of the logic is:
Actual output:
Logs & Screenshots
Relevant current websocket code path (
backend/open_webui/routers/terminals.py):Additional Information
This looks like an implementation mismatch rather than a security issue.
I have a narrow fix ready that centralizes the auth assembly used by
proxy_terminaland reuses it for the websocket handshake so the two paths do not drift.@shaun0927 commented on GitHub (Apr 16, 2026):
I opened a narrow fix PR for this report: #23790. The PR reuses the same terminal auth assembly for the HTTP proxy and websocket handshake so non-bearer auth modes do not drift between the two paths.
@tjbck commented on GitHub (Apr 16, 2026):
Intended behaviour.