Supply-chain threat intelligence

Incident detail

criticalnpm·maintainer compromise·osv

Malicious code in n8n-nodes-rce-poc (npm)

n8n-nodes-rce-poc

Risk score

92

AI summary

Indexed incident for n8n-nodes-rce-poc (npm).

Description

On require by n8n (module-load, top-level code in dist/RceNode.node.js), the package runs a shell command via execSync('/bin/sh',...). The command is taken from process.env.__N8N_RCE_CMD with a default of 'id && hostname && uname -a', so even an unconfigured install shells out and leaks host identity at load time, in the n8n host process and outside the vm2 sandbox. When process.env.__N8N_RCE_CB is set and EXEC_MODE is 'webhook' or 'both', the executed command's stdout/stderr/exitCode are serialized to JSON and HTTP-POSTed to the URL specified in __N8N_RCE_CB (dist/RceNode.node.js:28-40), giving a complete env-driven exfiltration channel to any destination. The node also exposes an execute() method that runs arbitrary user-supplied shell commands via /bin/sh on the n8n host, breaking the workflow Code-node sandbox model. The package.json description self-identifies as an 'n8n RCE proof-of-concept node'. There is no benign installer use: any n8n instance that installs this gains a drop-in remote-code-execution primitive plus a configurable exfiltration callback.

Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

Technical details

Affected versions

=1.0.0>=0

Indicators

  • Advisory IDs
    90%
  • affected version=1.0.075%
  • affected version>=075%

Timeline

  1. Advisory published
  2. Indexed by ThreatPkg

Related incidents