$ the-wire · showcase
Open WebUI removes hardcoded WEBUI_SECRET_KEY fallback, closes bypass_system_prompt hole
By RepoJournal · Filed · About Open WebUI
Open WebUI dropped the hardcoded WEBUI_SECRET_KEY default and moved bypass_system_prompt off the query string, closing two security gaps.
Open WebUI removed the hardcoded WEBUI_SECRET_KEY fallback [1]. The 't0p-s3cr3t' default was dead code on every supported startup path, including start.sh, start_windows.bat, and `open-webui serve`, all of which set or auto-generate the key before the backend imports env.py. It was only reachable by invoking uvicorn directly, which is unsupported and unsafe because the app would sign tokens and cookies with a public, hardcoded key. This is a breaking change for anyone launching via bare uvicorn; they must now export WEBUI_SECRET_KEY explicitly.
The same author moved the internal bypass_system_prompt flag off the query string and onto request.state [2]. Used by utils/middleware.py and utils/chat.py to skip the model system prompt on recursive base-model calls, it was still a positional argument on the OpenAI and Ollama chat-completion route handlers, so FastAPI bound it from the query string, letting external clients set it. The fix mirrors how bypass_filter is handled, and the argument was dropped from the route handlers.
Elsewhere, i18n work landed for Malay, Korean, and Polish [3][4][5]. The ms-MY translation fixes errors and standardizes terminology; ko-KR adds three missing `_one` plural keys that caused i18next to fall back unexpectedly; pl-PL fills in previously missing strings. One commit's description noted that the hardcoded fallback "keeps getting reported as a vulnerability" [1].
If you self-host and launch Open WebUI with bare uvicorn, export WEBUI_SECRET_KEY before upgrading; all other startup paths are unaffected.
Action items
- → Before upgrading, ensure WEBUI_SECRET_KEY is set explicitly if you ever launch via bare uvicorn open-webui/open-webui [immediate]
- → Review any code or reverse proxies that may have relied on the bypass_system_prompt query parameter open-webui/open-webui [immediate]
- → Pull the latest translations for Malaysian, Korean, and Polish locales if you ship those open-webui/open-webui [monitor]
References
- [1] fix: remove hardcoded WEBUI_SECRET_KEY fallback, require key explicitly (#25218) ↗ open-webui/open-webui
- [2] fix: move bypass_system_prompt off query parameter onto request.state (#25156) ↗ open-webui/open-webui
- [3] i18n: fix ms-MY (Malay) translation errors, standardize terminology and missing strings ↗ open-webui/open-webui
- [4] fix(i18n): add missing Korean plural _one keys in ko-KR translation ↗ open-webui/open-webui
- [5] i18n(pl-PL): add missing polish translations ↗ open-webui/open-webui