Home/ Blog/ Security news/ Article
Blog · Security news

A malicious code repository can run commands when opened in editors built on Eclipse Theia. Update to 1.70.

Opening a malicious repository in an editor built on Eclipse Theia could run attacker commands via a crafted git config.

Illustration of a sealed box hidden inside an open box, representing a booby-trapped code repository

A booby-trapped code repository can run an attacker's commands the moment you open it in a code editor built on Eclipse Theia, with no trust prompt standing in the way. The Eclipse Foundation published CVE-2026-19884 today, rating it 8.4 out of 10. The flaw was quietly fixed months ago in Theia 1.70.0, but the public record only landed now, and that gap is the story for anyone running a tool built on Theia.

Eclipse Theia is not an app most people install by name. It is a framework for building code editors, and it sits underneath products a lot of engineers do run: the Arduino IDE 2.x, Texas Instruments Code Composer Studio, and a range of browser-based cloud editors. If you use one of those, you are running Theia whether you think of it that way or not.

Why opening a folder was enough

When a Theia-based editor opens a folder, it starts its source control features straight away, before asking the user to trust the folder. To fill the source control panel, the git integration fires off ordinary read commands like git status the instant it detects a repository.

Git reads configuration from inside the repository it is working on. That is normal behavior, and it is also the problem here. A repository can carry its own .git/config, and a handful of git settings hold a command that git will execute. Point one of those settings, such as core.fsmonitor, at an attacker's command, and the editor's routine startup runs it. According to the Eclipse advisory, the payload can be smuggled in by nesting a bare repository inside an ordinary one, a delivery trick catalogued years ago as OVE-20210718-0001. Cloning the repository and opening it is enough, and the command runs with the signed-in user's privileges. A proof-of-concept is public, and the researcher credited with the report is Sudhanshu. There are no reports of exploitation in the wild.

Every Theia release through 1.69.0 carries the flaw. Version 1.70.0 is the first fixed build.

Editor or toolWhat runs the code on openStatus
Eclipse Theia (CVE-2026-19884)Git integration runs on folder open; a crafted repository config points a git setting at a commandFixed in Theia 1.70.0
Cursor on Windows (CVE-2026-63093)A fake git.exe planted in the repository root runs at startupNo fix at disclosure
AI coding agentsThe agent runs a repository's own tooling before the user clicks trustVendor-specific fixes
The same open-a-repo, run-code trap across editors. Sources: CVE records and Suriq reporting.

We have watched this same trap surface in editor after editor. A malicious repository ran code on open in Cursor on Windows through a planted git.exe, an AI coding agent handed out a shell from a repository that held no malicious code of its own, and simply opening a folder in an editor kicked off npm install logic. The common thread is that the editor touches a repository's git machinery before the human has decided the repository is safe. Theia is the newest name on that list, not a new class of bug. The toolchain itself keeps turning out to be the attack surface.

The real exposure is the tools built on Theia

Because Theia is a framework, the vulnerable behavior ships inside whatever bundles it, and each of those products pins its own Theia version. The Theia project fixing this in 1.70.0 does not mean the editor on your disk is fixed. A downstream tool that bundles Theia 1.67 stays vulnerable until its own maintainers bump the dependency and cut a release, and they may not have known to, because until today there was no CVE to track. That is the sharp end of a fix-before-CVE gap: the people who most needed a number to prioritize the upgrade did not have one for four months.

So the question is not only whether you updated Theia. It is whether the Theia-based tool you actually use ships a build with 1.70.0 or later inside it. For Arduino IDE, Code Composer Studio, or a hosted cloud editor, that answer comes from the vendor's release notes, not from Theia's.

How to tell if a repo is trying this

The behavior leaves a clean signal: a git process spawning a child it has no reason to spawn, right after a folder opens. On any developer host you collect logs from, watch process-creation events for git launching an interpreter or shell, such as sh, bash, cmd, or powershell, in the seconds after an editor loads a project. That parent-child pair is unusual enough to alert on.

The second angle is the file itself. In an untrusted clone, a repository-local .git/config that assigns a command to a setting like core.fsmonitor, core.hooksPath, core.sshCommand, or core.pager is the artifact. File integrity monitoring on cloned project directories can flag those values before anyone opens the folder.

If Suriq monitors the host, the process-creation and file-integrity telemetry it already collects is where this pattern shows up, so catching it is a detection rule to write, not a new sensor to deploy. Response stays yours to approve.

What to do now

  • Update Theia to 1.70.0 or later. The fix stops plugins that declare they do not support untrusted workspaces, including the built-in git extension, from loading in an untrusted folder, and it removes the deprecated @theia/git extension.
  • Check the tool, not just the framework. If you use Arduino IDE 2.x, TI Code Composer Studio, or a cloud editor built on Theia, confirm from the vendor's release notes that your build bundles Theia 1.70.0 or newer. Older bundles stay exposed.
  • Open untrusted repositories in a sandbox. Clone and inspect unfamiliar code inside a disposable virtual machine or container, not on your daily workstation.
  • Inspect the repository config before you open. Treat a repository-local .git/config that sets a command-valued key as hostile until you have proven otherwise.

Being second to a story is fine. Being the tool that shipped a four-month-old vulnerable Theia because nobody told you there was a CVE is not. Check your build.

Frequently asked questions

What is CVE-2026-19884?

CVE-2026-19884 is a command-execution flaw in Eclipse Theia, the framework used to build many code editors. Opening a folder starts the editor's git integration before the user trusts it, so a repository carrying a crafted .git/config can run an attacker command. It is rated 8.4 and fixed in Theia 1.70.0.

Which Eclipse Theia versions are affected, and where is the fix?

Every Theia release through 1.69.0 is affected. Version 1.70.0 is the first fixed build. The fix stops plugins that declare no support for untrusted workspaces, including the built-in git extension, from loading in an untrusted folder, and removes the deprecated @theia/git extension.

Am I affected if I do not use Eclipse Theia directly?

Possibly. Theia is a framework bundled inside other products, such as the Arduino IDE 2.x, Texas Instruments Code Composer Studio, and various cloud editors. Each bundles its own Theia version, so a tool built on Theia 1.69 or earlier stays exposed until its maintainers ship a build with Theia 1.70.0 or newer.

Is CVE-2026-19884 being exploited?

There are no reports of exploitation in the wild at the time of writing, and it is not on CISA's Known Exploited Vulnerabilities catalog. A proof-of-concept is public, and the technique reuses a long-known git configuration abuse, so the barrier to attempts is low. Treat the upgrade as a priority.

How can I detect an attempt to exploit it?

Watch process-creation logs for a git process launching a shell or interpreter, such as sh, bash, cmd, or powershell, in the seconds after an editor opens a project. Also flag untrusted clones whose repository-local .git/config assigns a command to a setting like core.fsmonitor or core.hooksPath.

Ready to meet the Guardians?

Deploys fast - agentless for monitoring and cloud, a lightweight agent for deep endpoint security. Just Suriq, standing watch.