Malicious code in sme-rko-finance-front-operations-overnight (npm)
MAL-2026-13643
Published · Modified
Description
__
Source: amazon-inspector (bcd5c58bd9b678ac91c87dbb7f9a1d2318c67cd3754d643550c7674c903186de)
On require, this package loads _ext.js and lib/telemetry.js which fetch a platform-specific opaque binary from a rotating list of attacker-controlled Cloudflare Workers hosts (oob-worker.cf100-416.workers.dev, oob-worker.cf101-adf.workers.dev, oob-worker.cf102-baf.workers.dev, oob-worker.cf103-070.workers.dev) with a DNS-TXT chunked-base64 fallback via *.dl.wel1.ru. The fetched bytes are written to /var/tmp or %TEMP% under a disguised name (.cache_<hex>, dotnet_diag_<hex>.exe), chmodded to 0o755, and spawned detached via /bin/sh -c "<path> &" or cmd.exe with stdio ignored. Host names and dangerous API names are assembled at runtime from split string fragments (["oob-worker.cf100-416.wo","rkers",".de","v"].join(""), require("child_" + "process"), fs["chmod"+"Sync"](...)) to evade static scanners. A mtime-based stamp file at /tmp/.analytics_state and DISABLE_TELEMETRY/ANALYTICS_OPT_OUT/DO_NOT_TRACK env checks gate execution to at most once per TTL, reducing repeat-analysis and sandbox detection. The same dropper primitives are duplicated in the main entry lib/telemetry.js under an 'Analytics SDK' cover story so the payload fires even if _ext.js is removed. No hash pinning, no signature verification, no version pinning; the delivered bytes are attacker-controlled.
Ready to move
Start Securing
Free, no credit card | First findings in minutes