Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in @years19/n8n-nodes-utils-helper-u (npm)

The npm package @years19/n8n-nodes-utils-helper-u contained malicious code in its postinstall hook and main entry point that launched DDoS attacks against a hardcoded target and exfiltrated host identifiers to a command-and-control server.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any host installing or requiring the @years19/n8n-nodes-utils-helper-u package becomes a DDoS source; secondary impact from host enumeration and command-and-control communication.
Ecosystems
Attack vectors
Affected entities
  • @years19/n8n-nodes-utils-helper-unpm package containing malicious postinstall hook and main entry point

The npm package @years19/n8n-nodes-utils-helper-u was published with malicious code embedded in both its postinstall lifecycle hook (callback.js) and its declared main entry point (index.js). Both files are byte-identical and execute the same payload.

Upon installation or when the package is required, the malicious code writes a Python script to /tmp/attack.py and executes it via nohup python3 /tmp/attack.py... &. The script spawns hundreds of UDP/TCP flood threads targeting the hardcoded IP address 103.118.252.21 for 600 seconds, converting the installer's host into a DDoS source.

After launching the flood attack, the code collects host identifiers (output of id, hostname, running process count, and /proc/loadavg), base64-encodes them, and sends them via HTTPS GET request to jasabersama.id/portfolio-data.php with query parameters including k=S7k9xQ2mZj. The request disables TLS certificate verification.

Because index.js serves as the module's main entry point, the malicious payload executes not only during npm install via the postinstall hook, but also whenever the package is imported via require() — a significant risk for n8n community node deployments.

Indicators of compromise

Packages
  • @years19/n8n-nodes-utils-helper-u
Domains
  • jasabersama.id
IPs
  • 103.118.252.21

Remediation

  • Immediately uninstall @years19/n8n-nodes-utils-helper-u from all systems
  • Audit npm install logs and process history on affected hosts for evidence of DDoS activity and command-and-control communication
  • Block outbound connections to 103.118.252.21 and jasabersama.id at the network perimeter
  • Review firewall and network logs for UDP/TCP flood patterns originating from affected hosts during the incident window
  • If the package was used as an n8n community node, remove it from all n8n instances and audit for unauthorized modifications
  • Rotate credentials and review access logs on systems that may have been compromised

Sources

  1. GitHub Advisory GHSA-cpq2-26qr-37q3 · GitHub Advisory Database

Cite this entry

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

Suggest a correction

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

  1. containedcritical

    Malware in svelte-dim-kit

    The npm package svelte-dim-kit was found to contain malware, potentially giving attackers full control of affected systems. All systems with this package installed should be considered compromised and secrets/keys rotated immediately from a different computer.

    npmCompromised package
  2. containedcritical

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

    The npm package @syncraft-labs/react contained obfuscated malicious code in its ESM distribution that implements the EtherHiding pattern, fetching and executing arbitrary code from an Ethereum smart contract via RPC endpoints. The tampering occurred post-build in the dist/index.js artifact.

    npmCompromised package
  3. containedcritical

    Malicious code in stillm4ddpocs-demo-sprocket (npm)

    The npm package stillm4ddpocs-demo-sprocket version 999.9.12 contains malicious code that exfiltrates system and project metadata via multiple channels (HTTPS, HTTP, and DNS) to a hardcoded callback host. The package uses a high version number to exploit dependency-confusion attacks against organizations with internal packages of the same name.

    npmCompromised packageDependency confusion
  4. resolvedcritical

    Malicious code in stillm4ddpocs-rtest-bravo (npm)

    The npm package stillm4ddpocs-rtest-bravo contained malicious code in its preinstall script that automatically executed during installation, collecting system information and internal package metadata and exfiltrating it to a third-party Interactsh collector via HTTPS and DNS tunneling.

    npmCompromised package