Threat actors expand abuse of Microsoft Visual Studio Code

Why VS Code Became (Perceived) Default vs Eclipse

  • Many see VS Code as “good enough everywhere”: free, MIT-licensed, cross‑platform, strong extension ecosystem, good default UX, solid fuzzy file navigation, and language‑neutral via LSP.
  • It runs in the browser and is embedded in major cloud consoles, further normalizing it.
  • Eclipse is remembered as slow, memory‑hungry, janky, and strongly Java‑centric; plugins for other languages often lagged or were brittle.
  • In the Java world, IntelliJ/other JetBrains IDEs are widely seen as Eclipse’s real replacement; for many, JetBrains tools are superior to both Eclipse and VS Code, but cost and licensing matter.

Performance, Editor Types, and Ecosystem

  • Split views: some call VS Code “dog slow” (especially with many extensions or large C/C++ projects); others say startup is seconds, which is irrelevant if the IDE stays open all day.
  • Several prefer neovim/Emacs (often via LazyVim etc.) for sub‑50ms startup and deep scriptability; others don’t want TUI editors.
  • Electron itself is criticized as a resource hog and large attack surface; some explicitly trust JVM‑based IDEs more than HTML/JS stacks.

Tool Standardization vs Developer Choice

  • Some view being forced onto a specific editor as a red flag and a sign of fungible engineers.
  • Others argue standard setups reduce IT/support cost, ease pairing/debugging, and avoid “works on my machine”; devcontainers/remote VMs are popular for consistent environments.

Security, Workspace Trust, and Auto‑Execution

  • Core concern: merely opening and “trusting” a folder in VS Code can lead to automatic processing of tasks.json and other config, enabling arbitrary command execution.
  • Many compare this to USB autorun or macro‑enabled Office documents; users are expected to make correct security choices in the middle of their workflow, which they often won’t.
  • The “Do you trust the authors of these files?” dialog is seen by critics as vague, over‑broad (“may execute files”), and easy to click through like cookie banners; it doesn’t specify what will actually run.
  • A VS Code team member explains:
    • Workspace trust is the main defense; restricted mode intentionally degrades features (language servers, debugging, automatic tasks) to avoid code execution.
    • There are many execution paths (build tools, test collectors, language servers, LLM agents), so it’s impossible to list them all or know ahead of time which will fire.
  • Suggestions from commenters:
    • Default to restricted mode and only prompt when a specific action needs trust.
    • Make warnings more concrete (which files/scripts, what they can do).
    • Add scanning or heuristics to highlight suspicious tasks and scripts.

Broader Risk Model and Possible Mitigations

  • Several note this isn’t unique to VS Code: build systems (Make, Gradle, Maven, npm, etc.) and editor plugins routinely run project code; any clone‑and‑build workflow is dangerous.
  • Some advocate containers/VMs as the default for development to shield host machines, though others point out that compromised projects can still backdoor artifacts, scripts, and credentials inside the container.
  • Overall sentiment: convenience features and rich IDE behavior have again eroded safety, and the current model places too much security responsibility on end‑users at the wrong time.