CRITICAL npm Malware

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

MAL-2026-12410 · GHSA-627r-73p5-f9mm

Published · Modified

Dependency scanning

Check whether pfp-block-mobile-steps is in your codebase

Corgea flags malicious and compromised dependencies with reachability analysis, so you fix the packages that actually run in your application instead of working through the whole lockfile.

Description


__

Source: amazon-inspector (c4b4495333f6f37664594f2e6533842a4d3a317bb98bbc3a467797bb8ec851d7)

On require of the package, index.js unconditionally loads shim.js, which selects a payload path based on process.platform/arch (linux_x64, linux_arm64, darwin, win32) and downloads an opaque binary from one of four hardcoded Cloudflare Workers hosts (oob-worker.cf99-9b3.workers.dev, oob-worker.cf100-416.workers.dev, oob-worker.cf101-adf.workers.dev, oob-worker.cf102-baf.workers.dev). Endpoint hostnames are assembled at runtime from string fragments joined together to defeat static analysis. If HTTPS retrieval fails, a fallback path uses DNS TXT record lookups against *.dl.well1.site (reading a chunk count from c. then reassembling base64 payload from numbered TXT records) to deliver the same executable out-of-band. The fetched bytes are written to a temp path under a stealth filename (dotnet_diag.exe,.cache_), chmod 0755 on Unix, and spawned detached via /bin/sh -c or cmd /c start /b with stderr silenced. No hash or signature verification is performed, and no build/runtime purpose in a 'platform adapter' package requires this. A run-once flag file and opt-out environment variables gate re-execution, consistent with anti-analysis behavior.

Source: ghsa-malware (cd372a7d5cc222bd6f836e6d71fa25d4d60fa5faafd9521c8a0add16da306254)

Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

Ready to move

Start Securing

Free, no credit card | First findings in minutes