OpenSSF/OSV advisory MAL-2026-12456 confirms this npm version as malicious. index.js requires./setup on module load. setup.js assembles obfuscated destination hostnames from split string arrays, selects a platform-specific endpoint from four hardcoded 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), downloads an opaque binary via https.get, writes it to /tmp or %TEMP% under a...
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in statist-statist-core (npm)
Details
index.js requires./setup on module load. setup.js assembles obfuscated destination hostnames from split string arrays, selects a platform-specific endpoint from four hardcoded 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), downloads an opaque binary via https.get, writes it to /tmp or %TEMP% under a disguised name (dotnet_diag_<suffix>.exe on Windows,.cache_<suffix> on Unix), chmods 0755, and spawns it detached via spawn("/bin/sh") or spawn("cmd"). When HTTPS fetch fails, setup.js falls back to a DNS TXT-record channel under *.dl.well1.site (tin.dl.well1.site, tina.dl.well1.site, ldr.dl.well1.site, win.dl.well1.site): it queries a count record and then N chunk records, base64-decodes the concatenation, and executes the reconstructed payload — an evasion channel that bypasses HTTP egress filtering. The child_process module name and destination hostnames are runtime-assembled from split arrays to defeat static scanners; disguised filenames and an analytics/telemetry framing serve as cover. The fetch-and-execute path fires automatically whenever any consumer requires this package.
Decision reason
OpenSSF Malicious Packages via OSV confirms statist-statist-core@20.9.9 as malicious (MAL-2026-12456): Malicious code in statist-statist-core (npm)