Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

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.

ShareXLinkedInHacker News
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

  1. 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.

  1. 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
  2. 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
  3. 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
  4. 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