CVE-2026-60009
HighCVSS 8.8Exploitation Probability (EPSS)
Low risk22th percentile - higher than 22% of all known CVEs
Summary
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.
Risk Assessment
An unauthenticated attacker can overwrite arbitrary files, including startup files, leading to remote code execution and full system compromise.
Recommendation
Update Eclipse Theia to a version newer than 1.73.1 and enforce authentication for all HTTP requests, not just WebSocket.
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-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-10054High
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.
- 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 Eclipse Theia versions up to and including 1.73.1, the `@theia/filesystem` backend binds `POST /file-upload` in every filesystem-enabled deployment. The handler takes an attacker-supplied absolute path from the multipart `uri` field and calls `fs.move(tmp, target, { overwrite: true })` with no workspace confinement and no authentication. In browser (non-Electron) deployments the connection token is enforced only on WebSocket upgrades; the HTTP middleware in `@theia/core` re-issues the cookie and calls `next()` without rejecting tokenless HTTP requests. Because `multipart/form-data` is a CORS-safelisted request type, a cross-origin web page can trigger the write with no preflight and no credentials, resulting in an unauthenticated arbitrary file write outside the workspace to any absolute path the backend process can write. This can escalate to remote code execution, for example by overwriting a startup-executed file such as `~/.bashrc`. Electron mode uses a separate `ElectronSecurityToken` and is not affected via this path.

