Malicious code in @years17/n8n-nodes-utils-helper-i (npm)
The npm package @years17/n8n-nodes-utils-helper-i contained malicious code in both its postinstall hook and main entry point that installed SSH backdoors and exfiltrated host reconnaissance data. The package appended attacker SSH public keys to authorized_keys for multiple system users and sent base64-encoded system information to an external domain.
- Disclosed
- Last updated
- Blast radius
- Any system that installed @years17/n8n-nodes-utils-helper-i, including CI/CD pipelines and development environments
- Ecosystems
- Attack vectors
- Affected entities
- @years17/n8n-nodes-utils-helper-inpm package containing malicious postinstall hook and index.js payload
The npm package @years17/n8n-nodes-utils-helper-i was published with embedded malicious code designed to establish persistent access and exfiltrate system information from infected hosts.\n\nThe malicious payload was implemented in two locations: a postinstall hook (callback.js) that executes during package installation, and the main entry point (index.js) containing identical code. The postinstall hook appends a hardcoded SSH public key (tagged pwn@kali) to the authorized_keys file for multiple system users (root, ubuntu, node, runner, and devuser), granting the attacker persistent SSH access. The same code in index.js ensures the implant executes even when npm's --ignore-scripts flag is used.\n\nUpon execution, the malicious code performs host reconnaissance by running commands (id, hostname, sudo -n id, /home listing, docker.sock presence check) and base64-encodes the output. This reconnaissance data is then exfiltrated via HTTPS GET request to jasabersama.id/portfolio-data.php with TLS verification disabled, allowing the attacker to bypass certificate validation.\n\nThe incident was identified and credited to the OpenSSF's malicious-packages repository (MAL-2026-13878).
Indicators of compromise
- Packages
- @years17/n8n-nodes-utils-helper-i
- Domains
- jasabersama.id
Remediation
- Immediately uninstall @years17/n8n-nodes-utils-helper-i from all systems
- Audit authorized_keys files on all affected systems for the pwn@kali SSH public key and remove any unauthorized entries
- Review system logs and SSH access logs for unauthorized access attempts or successful logins from the attacker's key
- Rotate SSH keys and credentials on all potentially affected systems
- Scan systems for persistence mechanisms and backdoors
- Review network logs for connections to jasabersama.id and related infrastructure
- Implement package verification and scanning in CI/CD pipelines to detect malicious packages before installation
- Use npm audit and third-party supply chain security tools to identify other potentially compromised dependencies
Sources
- GitHub Advisory GHSA-8m4c-f2rh-h8r6 · GitHub Advisory Database
Cite this entry
"Malicious code in @years17/n8n-nodes-utils-helper-i (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-i-npm-ktosrh
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 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 - resolvedcritical
Malicious code in @velliajs/discord (npm)
@velliajs/discord, a malicious npm package masquerading as a discord.js clone, contained two hostile mechanisms: an unpinned private git dependency with embedded GitHub PAT enabling arbitrary code injection on install, and a hidden runtime kill-switch that gates bot functionality based on a remote allow-list. Two live GitHub Personal Access Tokens were hardcoded in the package.
npmCompromised packageMalicious commit - resolvedcritical
Malicious code in twilio-hackerone-poc-afe6937c (npm)
The npm package twilio-hackerone-poc-afe6937c contained malicious preinstall/postinstall scripts that exfiltrate host metadata and environment variables to an external webhook, spawn a persistent daemon process, and attempt cross-tenant code injection in shared environments.
npmCompromised packageMalicious commit - containedcritical
Malicious code in @wololasod/tiny-id (npm)
The npm package @wololasod/tiny-id contained obfuscated malicious code that downloads and executes platform-specific remote executables on Windows and Linux systems. The dropper was embedded in both the main entry point (dist/index.cjs) and the TypeScript types file (dist/index.d.ts), disguised as a tiny ID generator.
npmCompromised packageMalicious commit