Malicious code in @years20/n8n-nodes-utils-helper-j (npm)
Malicious npm package @years20/n8n-nodes-utils-helper-j version 1.0.0 contained a postinstall script that executed reconnaissance commands, exfiltrated system information to a remote server, and staged remote code execution via a git filter hook. The package masqueraded as an n8n community node but contained no legitimate functionality.
- Disclosed
- Last updated
- Blast radius
- Any developer or system that installed @years20/n8n-nodes-utils-helper-j version 1.0.0
- Ecosystems
- Attack vectors
- Affected entities
- @years20/n8n-nodes-utils-helper-j · 1.0.0
The npm package @years20/n8n-nodes-utils-helper-j version 1.0.0 was published with malicious code embedded in its postinstall script (index.js/callback.js). Upon installation, the script automatically executed reconnaissance commands (id and hostname), base64-encoded the output, and transmitted it over HTTPS to jasabersama.id/portfolio-data.php with TLS verification disabled.\n\nBeyond reconnaissance, the malicious script wrote attacker-controlled content to temporary files (/tmp/n8n_rce_result.txt and /tmp/filter_pwned.txt), created a directory (/tmp/src-repo), and configured a git filter hook (filter.evil.smudge) designed to execute arbitrary shell commands during git checkout operations. This staged follow-on command execution capabilities on affected systems.\n\nThe package presented itself as an n8n community node (nodes/PwnNode.node.js) but shipped no legitimate node functionality. The reconnaissance and RCE-staging payload constituted the entire install-time behavior, firing automatically on npm install without user interaction.\n\nThe incident was identified and credited to the OpenSSF malicious-packages repository (MAL-2026-13919).
Indicators of compromise
- Packages
- @years20/n8n-nodes-utils-helper-j
- Domains
- jasabersama.id
Remediation
- Immediately uninstall @years20/n8n-nodes-utils-helper-j version 1.0.0 from all systems
- Audit systems where this package was installed for signs of compromise, including review of /tmp/n8n_rce_result.txt, /tmp/filter_pwned.txt, and git filter configurations
- Review outbound HTTPS connections to jasabersama.id and related domains for data exfiltration
- Regenerate credentials and SSH keys on any system where this package was installed
- Check git repositories for unauthorized filter.evil.smudge configurations and remove them
- Monitor for follow-on command execution attempts that may have been staged by the git filter hook
- Verify npm package integrity and implement package scanning in CI/CD pipelines to detect similar malicious packages
Sources
- GitHub Advisory GHSA-5fh4-8396-gq9x · GitHub Advisory Database
Cite this entry
"Malicious code in @years20/n8n-nodes-utils-helper-j (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-j-npm-09odv9
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 3-buildsight-web (npm)
The npm package 3-buildsight-web contains malicious code that fetches and executes arbitrary JavaScript from a remote Bitbucket URL on module load, granting full page privileges to an unverified third party.
npmCompromised package - resolvedcritical
Malicious code in @usaa-grp-personal-profile/personal-profile-common (npm)
Malicious package @usaa-grp-personal-profile/personal-profile-common version 999.0.0 published to public npm as a dependency-confusion attack targeting an organization's internal registry. The package contains preinstall and postinstall hooks that exfiltrate hostname, username, and working directory to an attacker-controlled OAST endpoint on every install.
npmDependency confusionCompromised package - resolvedcritical
Malicious code in create-coin (npm)
create-coin@20.1.1 on npm contained malicious postinstall code that collected sensitive environment variables, credentials, and host reconnaissance data. The package impersonated an esbuild platform build and exfiltrated data to a hardcoded endpoint.
npmCompromised packageTyposquatting - resolvedcritical
Malicious code in @syncraft-labs/vue (npm)
The npm package @syncraft-labs/vue version 0.4.1 contained malicious obfuscated code in its ESM build that implements a blockchain-hosted C2 dropper (EtherHiding pattern), enabling remote code execution on any consumer importing the package.
npmCompromised package