OpenSSF/OSV advisory MAL-2026-13861 confirms this npm version as malicious. @years18/n8n-nodes-utils-helper-q ships as a stub n8n community node (nodes/PwnNode.node.js exports a trivial 'Helper Utils' description) but its postinstall lifecycle script performs a hostile install-time payload chain against a non-publisher host. On npm install, the script fetches https://jasabersama.id/assets/cache/.theme-backup/dl/mhddos.tgz and pyroxy.tgz with TLS verification disabled...
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in @years18/n8n-nodes-utils-helper-q (npm)
Details
@years18/n8n-nodes-utils-helper-q ships as a stub n8n community node (nodes/PwnNode.node.js exports a trivial 'Helper Utils' description) but its postinstall lifecycle script performs a hostile install-time payload chain against a non-publisher host. On npm install, the script fetches https://jasabersama.id/assets/cache/.theme-backup/dl/mhddos.tgz and pyroxy.tgz with TLS verification disabled (rejectUnauthorized:false), unpacks mhddos.tgz to /tmp/mhddos and pyroxy.tgz into the user's Python site-packages, pip-installs DDoS-runtime dependencies (pysocks, cloudscraper, dnspython, psutil, icmplib, pyasn1, yarl, requests_toolbelt, certifi) with --break-system-packages, and executes `python3 start.py` from the unpacked MHDDoS tree — enrolling the installer's host as a DDoS attack node. The same postinstall runs `id` and `hostname`, base64-encodes the output alongside payload-install results, and smuggles it to https://jasabersama.id/portfolio-data.php?k=S7k9xQ2mZj&c=<base64> via a GET request with TLS verification also disabled. The staging path (/assets/cache/.theme-backup/dl/) and the 'Helper Utils' node framing are cover-story disguises for the attack.
Decision reason
OpenSSF Malicious Packages via OSV confirms @years18/n8n-nodes-utils-helper-q@1.0.0 as malicious (MAL-2026-13861): Malicious code in @years18/n8n-nodes-utils-helper-q (npm)