Executive brief
@evomap/evolver is a package validation tool that runs untrusted validation tasks in a sandbox. The sandbox incorrectly allows npm and npx commands, which by design execute arbitrary code via package lifecycle scripts (preinstall, install, postinstall). An attacker controlling or intercepting the Hub service can deliver malicious validation tasks that achieve remote code execution on every validator node within 60 seconds of the next daemon poll, with no authentication or user interaction required.
Technical details
The vulnerability is a sandbox escape caused by whitelisting npm and npx in the hard executable allowlist, combined with a missing signature verification on Hub responses. The validator's fetchValidationTasks() signs the outbound request but does not verify the Hub's JSON response before parsing validation_commands. Those commands are passed directly to runInSandbox() without policyCheck validation. The parseCommand() parser only blocks shell metacharacters, allowing benign-looking npm install commands to reach spawn(). npm's documented behavior executes preinstall/install/postinstall lifecycle scripts and npx downloads and executes remote package binaries—both bypass the intended threat model of allowlist-based command filtering. The nominal sandbox (fresh cwd, stripped env, but no container/chroot/seccomp/UID drop) cannot contain this code execution. Patches are available in v1.70.0-beta.5 and later. Attack vector is network; validator mode is enabled by default since v1.69.0.
Affected products
- EvoMap evolver <= 1.70.0-beta.4
Timeline
- 2026-05-05: disclosed
- 2026-05-05: patched: Fixed in v1.70.0-beta.5