open-webui/backend/open_webui/routers
Classic298 b40b6fd698
fix: reject backslash in the terminal proxy path sanitizer (#27198)
_sanitize_proxy_path decodes the path and then relies on posixpath.normpath plus a leading '..' check. posixpath splits on '/' only, so a backslash run is treated as part of a single path component: 'foo/..\..\etc' normalizes to itself, does not start with '..' and is forwarded unchanged, reaching the upstream as '/foo/..%5C..%5Cetc'. An upstream that treats the backslash as a separator would resolve those '..' sequences.

Reject any path containing a backslash after decoding, matching the existing fail-closed behaviour for paths that are still encoded past the decode cap. A backslash is not meaningful in the upstream API paths this route proxies, so legitimate requests are unaffected.

Co-authored-by: babakizo420 <babakizo420@users.noreply.github.com>
2026-07-27 01:01:10 -04:00
..
analytics.py refac 2026-06-29 01:38:41 -05:00
audio.py fix: preserve chunk order when assembling multi-chunk transcriptions (#27417) 2026-07-26 18:55:52 -04:00
auths.py feat: add a master OAuth / OIDC enable toggle in Authentication settings (#26988) 2026-07-26 18:43:21 -04:00
automations.py refac 2026-07-26 19:34:41 -04:00
calendar.py refac 2026-06-29 13:03:14 -05:00
channels.py fix: require message authorship for standard-channel message edit and delete (#27197) 2026-07-23 23:40:03 -04:00
chats.py chore: format 2026-07-27 00:12:47 -04:00
configs.py feat: add {{USER_GROUPS}} and {{USER_GROUP_IDS}} placeholders for custom forwarded headers (#27236) 2026-07-26 23:21:26 -04:00
evaluations.py refac 2026-07-24 02:36:10 -04:00
files.py chore: format 2026-07-20 22:11:42 -04:00
folders.py refac 2026-07-26 23:49:03 -04:00
functions.py refac 2026-07-26 19:10:41 -04:00
groups.py refac 2026-06-29 05:47:21 -05:00
images.py refac 2026-07-23 21:29:33 -04:00
knowledge.py feat: sortable title and updated at columns on the knowledge workspace page (#27457) 2026-07-26 18:19:31 -04:00
memories.py refac 2026-06-29 13:03:14 -05:00
models.py chore: format 2026-07-27 00:12:47 -04:00
notes.py chore: format 2026-07-20 22:11:42 -04:00
notifications.py refac 2026-07-16 01:27:52 -04:00
ollama.py perf: stream pure passthrough proxy responses by network chunk instead of by line (#27384) 2026-07-27 00:58:24 -04:00
openai.py perf: stream pure passthrough proxy responses by network chunk instead of by line (#27384) 2026-07-27 00:58:24 -04:00
pipelines.py refac 2026-07-23 21:29:33 -04:00
prompts.py refac 2026-06-29 13:03:14 -05:00
retrieval.py feat: add OpenSERP self-hosted web search backend (#27437) 2026-07-26 18:52:08 -04:00
scim.py refac 2026-06-25 03:31:45 +01:00
skills.py refac 2026-07-17 04:11:11 -04:00
tasks.py refac 2026-07-16 21:57:43 -04:00
terminals.py fix: reject backslash in the terminal proxy path sanitizer (#27198) 2026-07-27 01:01:10 -04:00
tools.py refac 2026-07-09 17:28:34 -05:00
users.py refac 2026-07-24 01:44:30 -04:00
utils.py refac 2026-06-17 02:52:35 +02:00