Malicious code in @years20/n8n-nodes-utils-helper-d (npm)
The npm package @years20/n8n-nodes-utils-helper-d contained malicious code that exfiltrates SSH keys and system information, and attempts unauthorized SSH logins. The payload executes both via postinstall hook and at module load, bypassing npm's --ignore-scripts protection.
- Disclosed
- Last updated
- Blast radius
- Any npm consumer of @years20/n8n-nodes-utils-helper-d; payload executes at install time and at module load, bypassing --ignore-scripts
- Ecosystems
- Attack vectors
- Affected entities
- @years20/n8n-nodes-utils-helper-dMalicious npm package
The npm package @years20/n8n-nodes-utils-helper-d was published with embedded malicious code designed to exfiltrate sensitive system information and credentials. The payload executes through two mechanisms: a postinstall hook (node callback.js) and at library load via index.js, which is set as the package's main entry point.\n\nThe malicious code collects the output of the id command, the machine hostname, detects whether the system is running Windows Subsystem for Linux (WSL), and reads the SSH public key from /etc/ssh/ssh_host_ed25519_key.pub. This data is base64-encoded and exfiltrated via HTTPS GET requests to jasabersama.id/portfolio-data.php with TLS verification disabled. The payload also decodes an embedded OpenSSH ed25519 private key, writes it to /tmp/pk, and attempts SSH logins to 127.0.0.1:22495 and 127.0.0.1:22 using multiple common usernames (devuser, ubuntu, runner, node, root, chris, user), reporting successful authentications back to the attacker's server.\n\nBecause the malicious code is duplicated at module load time rather than only in the postinstall hook, it executes whenever any application (including n8n) performs require('@years20/n8n-nodes-utils-helper-d'), effectively bypassing npm's --ignore-scripts flag. This makes the package dangerous even for users who attempt to mitigate postinstall hook risks.
Indicators of compromise
- Packages
- @years20/n8n-nodes-utils-helper-d
- Domains
- jasabersama.id
Remediation
- Immediately remove @years20/n8n-nodes-utils-helper-d from all projects and dependencies
- Audit npm install logs and package-lock.json to identify when the malicious package was installed
- Rotate all SSH keys, especially ed25519 keys on affected systems
- Review SSH authentication logs for unauthorized login attempts from the usernames listed (devuser, ubuntu, runner, node, root, chris, user)
- Monitor network traffic to jasabersama.id for any data exfiltration
- If the package was installed, assume SSH keys and system information may be compromised and treat accordingly
- Use npm audit to identify any remaining transitive dependencies on this package
Sources
- GitHub Advisory GHSA-9xr5-j397-j5pp · GitHub Advisory Database
Cite this entry
"Malicious code in @years20/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-years20-n8n-nodes-utils-helper-d-npm-ap3s7h
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- 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 - 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
Malicious code in pfp-forms-sme-loan (npm)
The npm package pfp-forms-sme-loan contains 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 well1.site. Any system that imported this package should be considered compromised.
npmCompromised packageMalicious commit