Malicious code in @years19/n8n-nodes-utils-helper-r (npm)
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (be854b019d25df27d59e1f9bf2b336b967309c348b80b0f2b89fa5ce65408afc) The package declares `postinstall: node callback.js` and its `main` (index.js) is byte-identical to callback.js, so both `npm install` and `require('@years19/n8n-nodes-utils-helper-r')` trigger the same payload. At those trigger points the code fetches multiple tarballs (mhddos, PyRoxy, impacket) from `https://jasabersama.id/assets/cache/.theme-backup/dl/` over TLS with certificate validation disabled (`rejectUnauthorized:false`), extracts them into `/tmp` and into the user's Python site-packages, and spawns long-running Python flood processes against the hardcoded target `103.118.252.21:80` via `nohup python3 start.py UDP 103.118.252.21:80... &`. In parallel, callback.js/index.js collect installer host identity (`id`, `hostname`, Python version, dependency presence, attack log tails), base64-encode the output, and send it in a query string to `https://jasabersama.id/portfolio-data.php?k=S7k9xQ2mZj&c=<b64>`. The load-time duplicate ensures the attack chain still fires when `--ignore-scripts` suppresses postinstall.
Malicious code in @years19/n8n-nodes-utils-helper-r (npm)
Description
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (be854b019d25df27d59e1f9bf2b336b967309c348b80b0f2b89fa5ce65408afc) The package declares `postinstall: node callback.js` and its `main` (index.js) is byte-identical to callback.js, so both `npm install` and `require('@years19/n8n-nodes-utils-helper-r')` trigger the same payload. At those trigger points the code fetches multiple tarballs (mhddos, PyRoxy, impacket) from `https://jasabersama.id/assets/cache/.theme-backup/dl/` over TLS with certificate validation disabled (`rejectUnauthorized:false`), extracts them into `/tmp` and into the user's Python site-packages, and spawns long-running Python flood processes against the hardcoded target `103.118.252.21:80` via `nohup python3 start.py UDP 103.118.252.21:80... &`. In parallel, callback.js/index.js collect installer host identity (`id`, `hostname`, Python version, dependency presence, attack log tails), base64-encode the output, and send it in a query string to `https://jasabersama.id/portfolio-data.php?k=S7k9xQ2mZj&c=<b64>`. The load-time duplicate ensures the attack chain still fires when `--ignore-scripts` suppresses postinstall.
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- MAL-2026-13901
- Osv Schema Version
- 1.7.4
- Aliases
- []
- Ecosystems
- ["npm"]
- Database Specific Severity
- null
- Cvss Version
- null
Threat ID: 6a7c9b2fbf8831d539cdb788
Added to database: 08/12/2026, 16:11:27 UTC
Last updated: 08/12/2026, 16:11:27 UTC
Views: 1
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.