saas-f-testing@20.4.2
Malicious code in saas-f-testing (npm)
Analysis
saas-f-testing@20.4.2 is a multi-stage downloader. On require(), index.js loads setup.js which fingerprints the platform and architecture (linux/arm64, darwin/x64, win32/x64, etc.), then downloads a platform-specific binary from Cloudflare Workers C2 endpoints (oob-worker[.]cf101-adf[.]workers[.]dev, oob-worker[.]cf100-416[.]workers[.]dev, oob-worker[.]cf103-070[.]workers[.]dev) at paths /pkg/package, /pkg/package-arm64, /pkg/loader_mac, or /pkg/package.exe. If HTTPS download fails, it falls back to a DNS TXT-based C2 channel using domains tin[.]dl[.]well1[.]site, tina[.]dl[.]well1[.]site, ldr[.]dl[.]well1[.]site, and win[.]dl[.]well1[.]site to reconstruct a base64-encoded payload. The downloaded binary is written to /tmp/.cache_<random> (or %TEMP%\dotnet_diag_<random>.exe on Windows) and executed as a detached background process via /bin/sh -c "path &" or cmd.exe /c start /b. A cooldown marker at /tmp/.analytics_state (or %TEMP%\analytics_state) prevents re-execution within ~6 hours. The package has no repository, no README, and no lifecycle scripts — the payload runs purely through the require() chain.
- analyzed by
- Leitwacht
- first seen
- Aug 2, 2026, 05:12 PM
- analyzed
- Aug 2, 2026, 05:13 PM
Related advisories
- finance-business-company-id-models@20.1.5
- statist-browser-typed-client-sme.platform.mobile.voip.common.events@20.9.4
- twork-data-services-eacq-company-service-v2-api-v1-identifiers-crm@20.6.7
- tinkoff-boxy-mobile-documents@20.1.7
- checkout-common-tokens@20.1.6
- tinkoff-statist-browser-typed-client-dss.insurance.service@20.3.2
- hubert-react-query@20.6.8
- deposits-overnight@20.8.5
Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.