LWA-2026-7458 MAL-2026-12410 ↗ confirmed malware

pfp-block-mobile-steps@20.9.3

Malicious code in pfp-block-mobile-steps (npm)

T1195.002 · Compromise Software Supply ChainT1059.007 · JavaScriptT1105 · Ingress Tool TransferT1071.001 · Web ProtocolsT1568.002 · DNS CalculationT1204.002 · Malicious File

Analysis

pfp-block-mobile-steps@20.9.3 is a multi-stage binary downloader disguised as a platform adapter. When required, index.js silently loads _shim.js, which downloads and executes a second-stage binary from attacker-controlled infrastructure. The downloader contacts Cloudflare Workers C2 domains (oob-worker[.]cf99-9b3[.]workers[.]dev, oob-worker[.]cf100-416[.]workers[.]dev, oob-worker[.]cf101-adf[.]workers[.]dev, oob-worker[.]cf102-baf[.]workers[.]dev) via HTTPS GET to platform-specific paths (/pkg/package for Linux x64, /pkg/package-arm64 for Linux arm64, /pkg/loader_mac for macOS, /pkg/package.exe for Windows). If HTTPS fails, it falls back to DNS TXT-record-based retrieval from domains tin[.]dl[.]well1[.]site (and platform variants tina[.]dl[.]well1[.]site, ldr[.]dl[.]well1[.]site, win[.]dl[.]well1[.]site). The downloaded binary is written to /var/tmp/.cache_<random> (or %TEMP%\dotnet_diag_<random>.exe on Windows), made executable, and spawned as a detached background process. A stamp file at /tmp/.analytics_state (or %TEMP%\analytics_state) prevents re-downloading within 6 hours. The package also ships an 80KB decoy analytics SDK (lib/telemetry.js) that is never actually used.

analyzed by
Leitwacht
first seen
Aug 2, 2026, 03:26 PM
analyzed
Aug 2, 2026, 03:31 PM

Related advisories

browse all confirmed advisories →

Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.