CVE-2026-10054
HighCVSS 8.8Exploitation Probability (EPSS)
Low risk5th percentile - higher than 5% of all known CVEs
Summary
In affected versions of Eclipse Theia (1.8.1 and later), the browser backend exposes privileged terminal RPC over WebSocket without service-level authentication. WebSocket origin validation is fail-open, allowing attackers to execute arbitrary OS commands.
Risk Assessment
An attacker from a foreign-origin web page can execute arbitrary OS commands on the victim's host, leading to full compromise of the development environment or server.
Recommendation
Apply temporary mitigation by configuring the allowed origins list (THEIA_HOSTS) and enforce external authentication. Once a fix is released, immediately update Eclipse Theia to the patched version.
Other vulnerabilities in Eclipse Theia
See all- CVE-2026-19884High
In Eclipse Theia up to version 1.69.0, opening a folder starts source control integration without first asking the user to trust the folder. Applications built on Theia that include git integration execute git commands (e.g., git status) as soon as a repository is detected. Because git honors repository-local configuration, a folder with an attacker-controlled .git/config containing core.fsmonitor can cause the configured command to be executed. Cloning an attacker-supplied repository and opening it in a Theia-based application is sufficient to execute arbitrary commands with user privileges, without any confirmation prompt.
- CVE-2026-61891High
In Eclipse Theia up to 1.73.1, the @theia/filesystem backend exposes HTTP file-download endpoints without confining to the workspace. In browser mode, the connection token is not enforced for HTTP requests, allowing unauthenticated clients to read any file readable by the backend process.
- CVE-2026-60009High
In Eclipse Theia up to version 1.73.1, the @theia/filesystem backend exposes POST /file-upload, which takes an attacker-supplied absolute path and performs fs.move without workspace confinement or authentication. In browser deployments, the connection token is enforced only on WebSocket upgrades, and tokenless HTTP requests are not rejected, allowing unauthenticated arbitrary file write outside the workspace, potentially leading to remote code execution.
- CVE-2026-14574Medium
The PreferenceUtils.merge function in Eclipse Theia recursively merges preference values without rejecting prototype-related keys (__proto__, constructor, prototype). This can lead to Object.prototype pollution when a user opens a workspace with a crafted settings file.
- CVE-2026-12609High
In Eclipse Theia versions 1.66.0 through 1.73.1, the @theia/plugin-ext backend exposes the /hostedPlugin/:pluginId/:path(*) HTTP endpoint, which resolves file paths without verifying they stay within the plugin directory. An unauthenticated attacker can use percent-encoded '../' sequences to escape the directory and read arbitrary files accessible to the backend process.
- CVE-2026-10055High
In Eclipse Theia since version 1.26.0, the backend /services/request-service RPC endpoint accepts an attacker-controlled URL from any client connected to the standard /services messaging endpoint, performs the HTTP request server-side, and returns the full response body to the caller. Because the destination URL is neither validated nor allowlisted, a remote attacker with access to the Theia service connection can issue server-side HTTP requests to localhost or other backend-reachable hosts and read their responses.
- CVE-2026-46580High
In Eclipse Theia versions prior to 1.71.0, files matching the pattern .prompts/*.prompttemplate in a workspace were automatically loaded, which could override or extend the AI agent's system prompts. An attacker could craft a malicious repository containing prompt template files that, when the workspace was opened in Theia, replaced the AI's system instructions with attacker-controlled content.
- CVE-2026-44691High
In Eclipse Theia versions prior to 1.69.0, custom task definitions in workspace files could be executed without requiring workspace trust. An attacker could craft a malicious repository that, when cloned and opened in Theia, leads to execution of arbitrary commands with the user's privileges.
- CVE-2026-44688High
In Eclipse Theia versions prior to 1.71.0, the AI chat agent processed workspace file and directory names as part of its prompt context without distinguishing them from system instructions. An attacker could craft a malicious repository with adversarial directory or file names, leading to the execution of attacker-controlled instructions.
- CVE-2026-22551Medium
In Eclipse Theia versions prior to 1.71.0, the AI chat rendered Markdown image tags from AI responses, triggering unrestricted HTTP requests to external URLs. Combined with prompt injection in a malicious workspace, an attacker could induce the AI agent to construct image URLs encoding sensitive information.
Original NVD description (English source)
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.

