CVE-2026-45401
WysokieStreszczenie
W wersjach przed 0.9.5 funkcja validate_url() w Open WebUI nie weryfikuje przekierowań HTTP 3xx, co pozwala uwierzytelnionym użytkownikom na dostęp do wewnętrznych adresów IP poprzez publiczne URL-e. Może to prowadzić do nieautoryzowanego odczytu danych z wewnętrznych zasobów.
Ocena ryzyka
Organizacja może być narażona na wyciek danych z wewnętrznych systemów, co stanowi poważne zagrożenie dla bezpieczeństwa informacji.
Rekomendacja
Zaleca się aktualizację Open WebUI do wersji 0.9.5 lub nowszej, aby zlikwidować tę podatność.
Inne podatności w Open WebUI
Zobacz wszystkie- CVE-2026-88002Średnie
Open WebUI w wersjach od 0.5.0 do 0.11.1 zawiera podatność na nieskończoną pętlę w funkcji pomocniczej rekonstrukcji łańcucha wiadomości w backend/open_webui/utils/misc.py. Uwierzytelniony użytkownik może przechowywać wiadomości bez identyfikatora w cyklicznej strukturze, co blokuje pętlę zdarzeń i powoduje wzrost pamięci aż do zatrzymania procesu. Problem naprawiono w wersji 0.11.1.
- CVE-2026-88001Średnie
Open WebUI w wersjach od 0.9.5 do 0.11.1 nie ponownie stosuje filtrów WEB_FETCH_FILTER_LIST ani kontroli adresów prywatnych przy przekierowaniach HTTP, gdy włączona jest opcja AIOHTTP_CLIENT_ALLOW_REDIRECTS. Uwierzytelniony użytkownik może przekierować żądania do wykluczonych hostów, pętli zwrotnej, sieci prywatnych lub usług metadanych chmury, a następnie wykorzystać wyniki w wyszukiwaniu, przetwarzaniu URL, narzędziach pobierania stron lub przetwarzaniu obrazów czatu. Problem naprawiono w wersji 0.11.1.
- CVE-2026-88000Średnie
Open WebUI w wersjach od 0.10.0 do 0.11.1 zawiera podatność na nieskończoną pętlę w funkcji usuwania wiadomości w backend/open_webui/models/chats.py. Uwierzytelniony użytkownik może utworzyć cykliczne drzewo czatu i usunąć wiadomość, co powoduje zablokowanie pętli żądań serwera i uniemożliwia obsługę żądań innych użytkowników aż do zabicia procesu. Problem naprawiono w wersji 0.11.1.
- CVE-2026-87999Wysokie
Open WebUI przed wersją 0.11.1 w punktach końcowych POST /api/v1/retrieval/process/web i POST /api/v1/retrieval/process/web/search traktowało globalnie routowalną klasyfikację adresów Pythona jako dowód, że cel jest zewnętrzny. Uwierzytelniony użytkownik mógł sprawić, że instancja hostowana na platformie Azure pobierze i zwróci treści z adresu 168.63.129.16 (kanał platformy Azure) oraz innych zastrzeżonych zakresów, które standardowa klasyfikacja odrzucała.
- CVE-2026-87998Wysokie
Open WebUI od wersji 0.10.0 do 0.11.1 w punkcie końcowym DELETE /api/v1/knowledge/{id}/delete autoryzowało usunięcie względem bazy wiedzy, ale następnie usuwało zewnętrzne połączenie należące do administratora bez osobnej kontroli administratora lub sprawdzenia innych zależnych baz wiedzy. Niebędący administratorem użytkownik z prawem zapisu do jednej zewnętrznej bazy wiedzy mógł usunąć współdzieloną konfigurację instancji i uczynić niedostępnymi wszystkie inne bazy wiedzy korzystające z tego połączenia.
- CVE-2026-87997Średnie
Open WebUI w wersjach od 0.10.0 do 0.11.1 nie sprawdza uprawnień zapisu do folderu przy tworzeniu nowego czatu z podanym folder_id w endpointach POST /api/chat/completions i POST /api/v1/chat/completions. Uwierzytelniony użytkownik, znając identyfikator folderu współdzielonego, może wstrzyknąć czat do folderu, do którego ma tylko odczyt lub brak uprawnień zapisu, co powoduje wyświetlenie wpisu autoryzowanym czytelnikom folderu. Problem naprawiono w wersji 0.11.1.
- CVE-2026-87996Wysokie
Open WebUI od wersji 0.9.6 do 0.11.1 w SafePlaywrightURLLoader w backend/open_webui/retrieval/web/utils.py walidowało kontrolowaną przez użytkownika nazwę hosta w Pythonie, a następnie pozwalało przeglądarce Playwright na ponowne jej rozwiązanie w przechwytujących żądania synchroniczne i asynchroniczne. Uwierzytelniony użytkownik kontrolujący autorytatywny DNS mógł zwrócić publiczny adres do walidacji i wewnętrzny adres do przeglądarki, ujawniając odpowiedzi z wewnętrznych usług lub metadanych chmury poprzez wyszukiwanie w sieci lub pobieranie URL.
- CVE-2026-87995Wysokie
Open WebUI od wersji 0.8.11 do 0.11.1 w src/lib/components/chat/FileNav/PortPreview.svelte renderowało zawartość portu terminala w iframe sandbox zawierającym zarówno allow-scripts, jak i allow-same-origin. Ponieważ proxy terminala serwuje tę zawartość z pochodzenia Open WebUI, uwierzytelniony użytkownik mający dostęp do współdzielonego serwera terminala mógł umieścić skrypt na podglądanym porcie i przejąć konto ofiary, gdy ofiara otworzyła podgląd.
- CVE-2026-87994Średnie
Open WebUI w wersjach od 0.9.5 do 0.11.1 nie weryfikuje, czy wywołujący użytkownik jest autorem wiadomości w kanale podczas korzystania z endpointu chat completions. Członek kanału może zastąpić wiadomość innego członka, zachowując oryginalnego autora, co zmienia zapis rozmowy bez uzyskiwania dostępu do innych kanałów. Problem naprawiono w wersji 0.11.1.
- CVE-2026-87017Średnie
Open WebUI w wersjach od 0.7.0 do 0.11.1 nie stosuje filtra metadanych w wbudowanym narzędziu wyszukiwania wiedzy, co pozwala uwierzytelnionemu użytkownikowi na wyliczenie identyfikatorów, nazw i opisów niedostępnych baz wiedzy w współdzielonej kolekcji. Tekst dokumentów pozostaje w oddzielnych kolekcjach, ale metadane są ujawniane. Problem naprawiono w wersji 0.11.1.
Oryginalny opis (angielski, źródło NVD)
Open WebUI is a self-hosted artificial intelligence platform designed to operate entirely offline. Prior to 0.9.5, the validate_url() function in backend/open_webui/retrieval/web/utils.py only validates the initial URL submitted by the caller. The HTTP clients used downstream (sync requests, async aiohttp, langchain's WebBaseLoader) follow HTTP 3xx redirects by default and do not re-validate the redirect target against the private-IP / metadata-IP block list. Any authenticated user can therefore submit a public URL that 302-redirects to an internal address (e.g. 127.0.0.1, 169.254.169.254, RFC1918) and read the internal response body via the /api/v1/retrieval/process/web endpoint, the /api/v1/images/... endpoints, the /api/chat/completions endpoint with an image_url content part, and any other route that calls these helpers. This vulnerability is fixed in 0.9.5.

