Malicious code in @years17/n8n-nodes-utils-helper-d (npm)
The npm package @years17/n8n-nodes-utils-helper-d contained malicious code that executed on install and require, exfiltrating host data, SSH keys, and internal infrastructure details to an attacker-controlled domain while accepting remote command execution.
- Disclosed
- Last updated
- Blast radius
- Any developer or CI/CD system that installed @years17/n8n-nodes-utils-helper-d via npm
- Ecosystems
- Attack vectors
- Affected entities
- @years17/n8n-nodes-utils-helper-dMalicious npm package with postinstall and require-time hooks
The npm package @years17/n8n-nodes-utils-helper-d was published with malicious code designed to execute during installation and module import. The package name mimics a legitimate n8n community-node utility, suggesting typosquatting or impersonation.\n\nUpon installation, a postinstall hook executes node callback.js, with identical logic duplicated in index.js to ensure execution on require. The script uses execSync to enumerate sensitive host data including directory listings (/app, /opt, /home/ubuntu), process information (/proc/1/cmdline), system configuration (/etc/hosts), and internal DNS names (nexus.local, proxy.nexus.local). It also reads SSH authorized keys from /home/ubuntu/.ssh/authorized_keys.\n\nThe aggregated data is base64-encoded and transmitted via HTTPS GET to jasabersama.id/portfolio-data.php with TLS verification disabled (rejectUnauthorized: false). The request includes a c= parameter containing a base64-encoded shell command, with results written to /tmp/n8n_rce_result.txt, indicating a command-delivery and execution mechanism controlled by the attacker.\n\nThe targeting of nexus.local and SSH credentials suggests an active reconnaissance and credential-theft campaign against installer infrastructure, likely CI/CD systems or development environments.",
<parameter name="remediation">["Immediately uninstall @years17/n8n-nodes-utils-helper-d from all systems", "Audit npm install logs and CI/CD pipelines for any installation of this package", "Rotate SSH keys and credentials that may have been exposed", "Review /tmp/n8n_rce_result.txt and system logs for evidence of command execution", "Block outbound connections to jasabersama.id", "Implement npm package verification and allowlisting in CI/CD pipelines", "Use npm audit and supply-chain security tools to detect similar malicious packages"]
Indicators of compromise
- Packages
- @years17/n8n-nodes-utils-helper-d
- Domains
- jasabersama.id
Remediation
- Review the linked advisory; remove or upgrade the affected component and rotate any exposed credentials.
Sources
- GitHub Advisory GHSA-wcw8-96hh-w5rr · GitHub Advisory Database
Cite this entry
"Malicious code in @years17/n8n-nodes-utils-helper-d (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 12, 2026; last updated August 12, 2026. https://supplychainattack.org/incident/malicious-code-in-years17-n8n-nodes-utils-helper-d-npm-4700hh
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- containedcritical
Malware in svelte-dim-kit
The npm package svelte-dim-kit was found to contain malware, potentially giving attackers full control of affected systems. All systems with this package installed should be considered compromised and secrets/keys rotated immediately from a different computer.
npmCompromised package - containedcritical
Malicious code in @syncraft-labs/react (npm)
The npm package @syncraft-labs/react contained obfuscated malicious code in its ESM distribution that implements the EtherHiding pattern, fetching and executing arbitrary code from an Ethereum smart contract via RPC endpoints. The tampering occurred post-build in the dist/index.js artifact.
npmCompromised package - containedcritical
Malicious code in stillm4ddpocs-demo-sprocket (npm)
The npm package stillm4ddpocs-demo-sprocket version 999.9.12 contains malicious code that exfiltrates system and project metadata via multiple channels (HTTPS, HTTP, and DNS) to a hardcoded callback host. The package uses a high version number to exploit dependency-confusion attacks against organizations with internal packages of the same name.
npmCompromised packageDependency confusion - resolvedcritical
Malicious code in stillm4ddpocs-rtest-bravo (npm)
The npm package stillm4ddpocs-rtest-bravo contained malicious code in its preinstall script that automatically executed during installation, collecting system information and internal package metadata and exfiltrating it to a third-party Interactsh collector via HTTPS and DNS tunneling.
npmCompromised package