Open WebUI przed wersją 0.10.0 jest podatne na atak typu stored XSS, w którym złośliwe payloady osadzone w czatach mogą wykonywać uwierzytelnione żądania HTTP po stronie ofiary. Podatność może prowadzić do dostępu do zastrzeżonych endpointów administracyjnych oraz wykonania kodu po stronie serwera.
▸ Pokaż oryginał (EN)
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. Prior to 0.10.0, Open WebUI runs client-side Python with Pyodide in a same-origin web worker, allowing stored chat payloads that use pyodide.http.pyfetch or the js module fetch and XMLHttpRequest APIs to issue authenticated same-origin requests when a victim clicks Run, which can reach admin-only endpoints and execute server-side code through configured tools. This issue is fixed in version 0.10.0.
Open WebUI uruchamia kod Python po stronie klienta za pomocą Pyodide w ramach web workera działającego w tym samym źródle (same-origin). Złośliwy payload osadzony w historii czatu może wykorzystać API pyodide.http.pyfetch, fetch lub XMLHttpRequest do wysyłania uwierzytelnionych żądań same-origin w momencie, gdy ofiara kliknie przycisk 'Run'. W ten sposób atakujący może docierać do endpointów dostępnych wyłącznie dla administratorów i wykonywać kod po stronie serwera poprzez skonfigurowane narzędzia (tools).
Atakujący może uzyskać nieautoryzowany dostęp do danych chronionych przez endpointy administracyjne oraz wykonać kod po stronie serwera, co może prowadzić do pełnego przejęcia instancji platformy.
Należy zaktualizować Open WebUI do wersji 0.10.0 lub nowszej, w której problem został naprawiony.
Open WebUI w wersjach wcześniejszych niż 0.10.0
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:NOpenwebui Open Webui
APPOpenwebui< 0.10.0
Powiązane podatności
open-webui: RCE przez błędną konfigurację CORS i brak walidacji sesji
Open WebUI: pominięcie uwierzytelnienia LDAP przez puste hasło (Auth Bypass)
XSS w Open WebUI — kradzież sesji i eskalacja uprawnień do admina
Open WebUI: stored XSS w przepływie OAuth poprzez SVG jako data URI
Open WebUI: nieautoryzowane wykonanie kodu w cudzej sesji przez Socket.IO