Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in @years18/n8n-nodes-utils-helper-a (npm)

The npm package @years18/n8n-nodes-utils-helper-a contained malicious code that executes at both install time and import time, establishing persistent SSH access and downloading a remote C2 implant. The package was disguised as an n8n community node but delivered a hostile payload targeting multiple user accounts and WSL environments.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any developer or system that installed or imported the @years18/n8n-nodes-utils-helper-a package; payload executes at install time and import time, affecting build systems, development machines, and production deployments.
Ecosystems
Attack vectors
Affected entities
  • @years18/n8n-nodes-utils-helper-aMalicious npm package masquerading as n8n community node

The npm package @years18/n8n-nodes-utils-helper-a was identified as containing malicious code by Amazon Inspector and credited to the OpenSSF malicious-packages repository. The package presented itself as an n8n community node but shipped hostile payloads in both callback.js (invoked via postinstall script) and index.js (the declared main entry point).\n\nThe payload performs three primary attack functions: (1) appends a hardcoded attacker SSH public key (pwn@kali) to ~/.ssh/authorized_keys for multiple user accounts (root, ubuntu, devuser, node, runner) and to WSL paths (/mnt/c/Users/*/.ssh/authorized_keys), granting persistent remote SSH access; (2) downloads a binary from https://jasabersama.id/assets/cache/.theme-backup/dl/implant with TLS verification disabled, writes it to /tmp/implant, makes it executable, and launches it via nohup to establish a C2 connection to 10.131.106.93:8888; (3) collects system information (id and hostname output), base64-encodes it, and beacons it to https://jasabersama.id/portfolio-data.php with a hardcoded key parameter.\n\nThe dual execution surfaces (install-time and import-time) ensure the attack runs regardless of whether the package is merely installed or actively imported in code. This affects development machines, CI/CD pipelines, and any production systems that depend on the package.

Indicators of compromise

Packages
  • @years18/n8n-nodes-utils-helper-a
Domains
  • jasabersama.id
IPs
  • 10.131.106.93

Remediation

  • Immediately remove @years18/n8n-nodes-utils-helper-a from all package.json files and lock files
  • Audit ~/.ssh/authorized_keys and /mnt/c/Users/*/.ssh/authorized_keys on all affected systems for the pwn@kali public key and remove it
  • Check /tmp/implant and running processes for the downloaded C2 binary; terminate and remove any instances
  • Review system logs and network traffic for connections to 10.131.106.93:8888 and requests to jasabersama.id
  • Regenerate SSH keys and credentials for all affected user accounts
  • Perform a full security audit of any systems that installed or imported this package, as persistent SSH access may have been established
  • Update npm dependencies and verify all packages are from legitimate sources

Sources

  1. GitHub Advisory GHSA-2mm6-55m4-cwcv · GitHub Advisory Database

Cite this entry

"Malicious code in @years18/n8n-nodes-utils-helper-a (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 12, 2026; last updated August 12, 2026. https://supplychainattack.org/incident/malicious-code-in-years18-n8n-nodes-utils-helper-a-npm-1yw8oa

Suggest a correction

Found an error or have a newer source? Corrections to factual errors take priority over new entries.

  1. resolvedcritical

    Malicious code in rust-testing-utils (npm)

    The npm package rust-testing-utils contained malicious code that impersonates the pino logger and executes remotely-fetched code with arbitrary privileges. The package spawns a child process that decodes a hardcoded URL, fetches attacker-controlled content, and executes it via Function constructor with full module-loading capability.

    npmCompromised packageMalicious commit
  2. resolvedcritical

    Malicious code in @syncraft-labs/core (npm)

    The npm package @syncraft-labs/core contained obfuscated malicious code in its ESM build that executes on import, fetching and executing attacker-controlled payloads from Ethereum blockchain via JSON-RPC endpoints. The CommonJS build was clean, indicating targeted injection into the ESM entry point.

    npmCompromised packageMalicious commit
  3. resolvedcritical

    Malicious code in dxr-dos (npm)

    The npm package dxr-dos contains malicious code that executes arbitrary code via a mutable third-party dependency (deathoffather-project) and extracts a hidden PHP C2 panel from a password-protected archive. The package is advertised as a DDoS toolkit with command-and-control capabilities.

    npmCompromised packageMalicious commit
  4. resolvedcritical

    Malicious code in ranux-pro (npm)

    The npm package ranux-pro contained malicious code disguised as a network socket library. The package shipped a multi-tenant WhatsApp bot with obfuscated code and a mutable dependency override pointing to a personal GitHub account, allowing attackers to execute arbitrary code at install and runtime.

    npmCompromised packageMalicious commit