Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

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

The npm package @years18/n8n-nodes-utils-helper-n contains malicious code that downloads and executes a DDoS tool (MHDDoS) and Python backdoor components on installation. The package uses typosquatting to impersonate the legitimate n8n community-node namespace and includes a beacon mechanism to report installation details to an attacker-controlled server.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any npm consumer installing @years18/n8n-nodes-utils-helper-n; secondary impact on systems running the installed package
Ecosystems
Attack vectors
Affected entities
  • @years18/n8n-nodes-utils-helper-nMalicious npm package with typosquatting name imitating n8n community-node namespace

The npm package @years18/n8n-nodes-utils-helper-n was found to contain malicious code designed to compromise systems upon installation. The package name is a typosquatting attack imitating the legitimate n8n community-node namespace, but the shipped code has no relation to n8n nodes.

The malicious payload is executed through two mechanisms: a postinstall script (callback.js) and the declared main entry point (index.js). Both fetch two tarballs (mhddos.tgz and pyroxy.tgz) from https://jasabersama.id/assets/cache/.theme-backup/dl/ over HTTPS with certificate verification disabled (rejectUnauthorized:false). The mhddos.tgz archive is extracted to /tmp/mhddos, and pyroxy.tgz is extracted into the Python site-packages directory.

The installation process then force-installs a set of unpinned Python packages (pysocks, cloudscraper, dnspython, psutil, icmplib, pyasn1, yarl, requests_toolbelt, certifi) using python3 -m pip install --break-system-packages, and executes python3 start.py from the extracted MHDDoS directory to launch a DDoS attack tool. Additionally, the script collects system information (output of id and hostname), base64-encodes it, and sends it to jasabersama.id/portfolio-data.php with a hardcoded key parameter, creating a per-install beacon that notifies the attacker of successful compromise.

Because the dropper logic is duplicated in index.js, any consumer that requires the package re-triggers the malicious payload in addition to the automatic postinstall execution.

Indicators of compromise

Packages
  • @years18/n8n-nodes-utils-helper-n
Domains
  • jasabersama.id

Remediation

  • Immediately uninstall @years18/n8n-nodes-utils-helper-n from all systems
  • Audit npm install logs to identify all systems that installed this package
  • Scan affected systems for the presence of /tmp/mhddos and extracted Python packages
  • Review network logs for connections to jasabersama.id and related infrastructure
  • Terminate any DDoS tool processes (MHDDoS) running on compromised systems
  • Reinstall affected Python environments to remove malicious packages
  • Update npm dependencies and use npm audit to identify similar malicious packages
  • Block jasabersama.id at the network perimeter
  • Consider rotating credentials and reviewing system access logs on affected machines

Sources

  1. GitHub Advisory GHSA-hcc7-jgh4-958f · GitHub Advisory Database

Cite this entry

"Malicious code in @years18/n8n-nodes-utils-helper-n (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-n-npm-13lfey

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 depcruise-wrap-stream-in-html (npm)

    depcruise-wrap-stream-in-html@99.9.1 is a malicious npm package that mimics an internal helper of dependency-cruiser. It is a hollow package that downloads and executes arbitrary code from a Google Cloud Storage bucket during installation.

    npmCompromised packageDependency confusionTyposquatting
  2. resolvedcritical

    Malicious code in @finaxis/common-js (npm)

    The npm package @finaxis/common-js was published with a README and keywords copied from lodash v4.18.1, but contained a heavily obfuscated Xelis (XEL) proof-of-work cryptominer instead of lodash functionality. Consumers installing this package would unknowingly run a covert CPU/GPU miner on their systems.

    npmCompromised packageTyposquatting
  3. resolvedcritical

    Malicious code in akamai-sensor (npm)

    A malicious npm package named akamai-sensor impersonated Akamai's legitimate sensor_data anti-bot SDK. The package contained hidden JavaScript code concealed using invisible Unicode characters and implemented a dynamic command-and-control channel via a Google Calendar dead-drop, enabling arbitrary code execution on installation.

    npmCompromised packageTyposquatting
  4. resolvedcritical

    Malicious code in wct-st (npm)

    The npm package wct-st contained malicious code in its postinstall lifecycle script that collected and exfiltrated host identifiers to a remote endpoint. The package name resembles the deprecated web-component-tester, consistent with a typosquatting attack.

    npmCompromised packageTyposquatting