W Open WebUI w wersjach od 0.9.0 do 0.10.x podgląd plików HTML w terminalu był osadzany w elemencie iframe z jednocześnie włączonymi uprawnieniami allow-same-origin oraz allow-scripts, co tworzyło podatność XSS. Umożliwia to uwierzytelnionemu atakującemu kradzież tokenu sesji ofiary i przejęcie jej konta.
▸ Pokaż oryginał (EN)
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.9.0 until 0.11.0, the terminal file-preview serveUrl iframe branch always granted allow-same-origin together with allow-scripts for HTML files served from the application origin. Any authenticated user with access to a configured terminal server could cause script in a previewed file to run in the Open WebUI origin, read the victim's session token from localStorage, and take over the account, with possible server-side code execution if the victim was an admin or held workspace.functions. This issue is fixed in 0.11.0.
Gałąź kodu obsługująca podgląd plików w terminalu (serveUrl iframe) przyznawała atrybuty allow-same-origin i allow-scripts jednocześnie dla plików HTML serwowanych z domeny aplikacji. Skrypt zawarty w złośliwym pliku HTML wyświetlanym jako podgląd wykonywał się w kontekście origin aplikacji Open WebUI. Pozwalało to odczytać token sesji ofiary z localStorage przeglądarki. Jeśli ofiara posiadała uprawnienia administratora lub dostęp do workspace.functions, możliwe było dalsze wykonanie kodu po stronie serwera (server-side code execution).
Atakujący może przejąć konto ofiary poprzez kradzież tokenu sesji z localStorage, a w przypadku ofiary z uprawnieniami administracyjnymi lub dostępem do workspace.functions — uzyskać możliwość wykonania kodu po stronie serwera (RCE).
Należy zaktualizować Open WebUI do wersji 0.11.0, w której problem został naprawiony. Poprawka dostępna jest w repozytorium GitHub (commit 65a5fad7b97db99d490d81f4e0860282c3a4543c) oraz w oficjalnym wydaniu v0.11.0.
Open WebUI w wersjach od 0.9.0 do 0.10.x (poniżej 0.11.0); dotyczy każdego uwierzytelnionego użytkownika mającego dostęp do skonfigurowanego serwera terminala.
Podatność wymaga uwierzytelnienia oraz dostępu do skonfigurowanego serwera terminala, co nieznacznie ogranicza powierzchnię ataku. Szczególnie krytyczna dla instancji, w których użytkownicy posiadają uprawnienia administracyjne lub dostęp do workspace.functions, ze względu na ryzyko RCE.
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N