CVE-2026-87016
WysokieCVSS 8.1Streszczenie
Open WebUI od wersji 0.6.41 do 0.11.1 w funkcjach get_user_by_oauth_sub i get_user_by_scim_external_id w backend/open_webui/models/users.py używało dopasowania JSON zawierającego, które kompilowało się do dopasowania podciągów SQL LIKE na SQLite. Temat OAuth zawierający znaki specjalne procent lub podkreślenie mógł rozwiązać się do innej zapisanej tożsamości, potencjalnie wybierając konto administratora i wydając atakującemu sesję tego konta; wdrożenia PostgreSQL nie były dotknięte.
Ocena ryzyka
Ryzyko obejmuje nieautoryzowany dostęp do konta administratora, co może prowadzić do pełnej kompromitacji instancji Open WebUI, w tym dostępu do danych, modyfikacji konfiguracji i dalszych ataków.
Rekomendacja
Zaktualizuj Open WebUI do wersji 0.11.1 lub nowszej, która zawiera poprawkę eliminującą 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 an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.6.41 until 0.11.1, get_user_by_oauth_sub and get_user_by_scim_external_id in backend/open_webui/models/users.py used JSON contains matching that compiled to SQL LIKE substring matching on SQLite. An OAuth subject containing percent or underscore wildcard characters could resolve to a different stored identity, potentially selecting an administrator account and issuing the attacker that account's session; PostgreSQL deployments were not affected. This issue is fixed in version 0.11.1.

