Malicious code in @years20/n8n-nodes-utils-helper-b (npm)
The npm package @years20/n8n-nodes-utils-helper-b contained malicious code that exfiltrates system information and SSH keys, and attempts authenticated SSH access to localhost on non-standard and standard ports. The payload executes on both npm install (postinstall hook) and on package import, bypassing --ignore-scripts protections.
- Disclosed
- Last updated
- Blast radius
- Any developer or CI/CD environment that installed @years20/n8n-nodes-utils-helper-b
- Ecosystems
- Attack vectors
- Affected entities
- @years20/n8n-nodes-utils-helper-bMalicious npm package containing data exfiltration and SSH credential harvesting code
The npm package @years20/n8n-nodes-utils-helper-b was published with embedded malicious code designed to harvest sensitive data and establish unauthorized access on affected systems.\n\nUpon installation and import, the package executes reconnaissance and exfiltration routines. It collects system information (user ID, hostname, WSL detection status) and reads the SSH public key from /etc/ssh/ssh_host_ed25519_key.pub. This data is base64-encoded and exfiltrated via HTTP GET request to https://jasabersama.id/portfolio-data.php?k=S7k9xQ2mZj&c= with TLS verification disabled.\n\nThe malicious code additionally writes an embedded OpenSSH ed25519 private key to /tmp/pk with restricted permissions (600) and attempts authenticated SSH connections to 127.0.0.1 and localhost on ports 22495 and 22, using a hardcoded user list (devuser, ubuntu, runner, node, root, chris, user). This behavior suggests targeting of developer and CI/CD environments for lateral movement or persistence.\n\nThe payload is duplicated across both the postinstall hook and the main entry point (callback.js and index.js), ensuring execution even when npm install is run with --ignore-scripts, since the package is loaded at runtime by n8n.
Indicators of compromise
- Packages
- @years20/n8n-nodes-utils-helper-b
- Domains
- jasabersama.id
Remediation
- Immediately uninstall @years20/n8n-nodes-utils-helper-b from all affected systems
- Audit systems that installed this package for unauthorized SSH access attempts and data exfiltration
- Rotate SSH keys and credentials on any systems where this package was installed
- Review network logs for outbound connections to jasabersama.id
- Scan `/tmp/pk` and `/tmp/n8n_rce_result.txt` for evidence of exploitation
- Update npm dependencies to remove this package and verify no similar typosquatting packages are present
- Implement package verification and allowlisting policies in npm install workflows
Sources
- GitHub Advisory GHSA-p37g-qgf5-h92h · GitHub Advisory Database
Cite this entry
"Malicious code in @years20/n8n-nodes-utils-helper-b (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 12, 2026; last updated August 12, 2026. https://supplychainattack.org/incident/malicious-code-in-years20-n8n-nodes-utils-helper-b-npm-9sdrss
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Malicious code in epic-common-node (npm)
The npm package epic-common-node was found to contain malicious code. The package has been identified and reported through GitHub Security Advisory GHSA-m36g-mhjr-ww2c.
npmCompromised package - containedcritical
Malicious code in epic-common (npm)
The npm package epic-common was found to contain malicious code. The package was identified by Amazon Inspector and reported through the OpenSSF malicious packages database.
npmCompromised package - containedcritical
Malware in leb128x
The npm package leb128x was found to contain malware that grants full system compromise to attackers. Any computer with this package installed or running should be considered fully compromised and all secrets and keys rotated immediately from a different machine.
npmCompromised package - containedcritical
Malicious code in checkout-desktop-total (npm)
The npm package checkout-desktop-total contained malicious code that executes a hidden loader on import, downloading and running platform-specific native payloads from attacker-controlled Cloudflare Workers hosts or reconstructing them via DNS TXT records under wel1.ru. Any system that imported this package should be considered compromised.
npmCompromised package