Eclipse Theia w wersjach 1.8.1 i późniejszych udostępnia uprzywilejowane usługi terminala przez WebSocket bez uwierzytelnienia na poziomie serwisu. Atakujący może nakłonić użytkownika do odwiedzenia złośliwej strony i w ten sposób przejąć kontrolę nad terminalem oraz wykonać dowolne polecenia systemowe.
▸ Pokaż oryginał (EN)
In affected versions of Eclipse Theia (1.8.1 and later), the browser backend exposes privileged terminal RPC over WebSocket (/services/shell-terminal, /services/terminals/:id) without service-level authentication. WebSocket origin validation in @theia/core is fail-open: connections are accepted when the Origin header is missing or when no THEIA_HOSTS allowlist is configured (the default). The Socket.IO integration additionally replaces the real Origin header with a client-supplied fix-origin header that an attacker can control or omit. As a result, a foreign-origin web page visited by a user with a running Theia instance can open the /services WebSocket namespace, invoke terminal creation, attach to the resulting terminal data channel, execute arbitrary OS commands, and read their output. This affects both local developer setups (drive-by attack) and hosted or tunneled deployments without strong external authentication. A fix is in development that enforces same-origin validation by default, removes trust in the fix-origin header, gates HTTP and WebSocket access on a SameSite=Strict; HttpOnly connection-token cookie, and sanitizes shell terminal creation options.
Backend przeglądarki w Eclipse Theia udostępnia endpoint WebSocket (/services/shell-terminal, /services/terminals/:id) bez mechanizmu uwierzytelnienia. Walidacja nagłówka Origin w komponencie @theia/core działa w trybie fail-open: połączenia są akceptowane, gdy nagłówek Origin jest nieobecny lub gdy lista dozwolonych hostów THEIA_HOSTS nie jest skonfigurowana (domyślna konfiguracja). Integracja Socket.IO dodatkowo zastępuje rzeczywisty nagłówek Origin nagłówkiem fix-origin dostarczanym przez klienta, który atakujący może swobodnie kontrolować lub pomijać. W efekcie obca strona internetowa odwiedzana przez użytkownika posiadającego uruchomioną instancję Theia może otworzyć przestrzeń nazw WebSocket /services, wywołać tworzenie terminala, dołączyć się do kanału danych terminala i wykonywać dowolne polecenia systemowe.
Atakujący może wykonać dowolne polecenia systemowe (RCE) z uprawnieniami procesu Theia oraz odczytać ich wyniki, co prowadzi do pełnego przejęcia środowiska deweloperskiego lub hostowanej instancji. Atak może być przeprowadzony jako drive-by zarówno w lokalnych konfiguracjach deweloperskich, jak i w środowiskach hostowanych lub tunelowanych bez silnego zewnętrznego uwierzytelnienia.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Trwają prace nad poprawką wymuszającą walidację same-origin, usuwającą zaufanie do nagłówka fix-origin, zabezpieczającą dostęp HTTP i WebSocket tokenem cookie z atrybutami SameSite=Strict; HttpOnly oraz sanityzującą opcje tworzenia terminala powłoki. Do czasu wydania poprawki zaleca się skonfigurowanie listy THEIA_HOSTS oraz zastosowanie silnego zewnętrznego uwierzytelnienia przed instancją Theia.
Eclipse Theia w wersjach 1.8.1 i późniejszych (wszystkie wersje od 1.8.1 do momentu wydania poprawki)
Poprawka była w trakcie opracowywania w momencie publikacji podatności (2026-07-03). Szczegóły techniczne naprawy (same-origin enforcement, usunięcie fix-origin, token cookie SameSite=Strict; HttpOnly) zostały opisane w oficjalnym advisory producenta.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H