bnpl-blocks-atom-bnpl-action-card@35.4.7
Malicious code in bnpl-blocks-atom-bnpl-action-card (npm)
Analysis
On require, the package downloads and executes a second-stage binary. index.js loads _loader.js, which fetches a platform-specific payload over HTTPS from Cloudflare Workers endpoints oob-worker[.]cf100-416[.]workers[.]dev, oob-worker[.]cf99-9b3[.]workers[.]dev, and oob-worker[.]cf103-070[.]workers[.]dev at paths /pkg/package, /pkg/package-arm64, /pkg/loader_mac, or /pkg/package.exe depending on OS/arch. If those fail it falls back to DNS TXT-record exfiltration from wel1[.]ru subdomains (c[.]sdk[.]dl[.]wel1[.]ru, ext[.]dl[.]wel1[.]ru, pkg[.]dl[.]wel1[.]ru, net[.]dl[.]wel1[.]ru), base64-decoding chunked records into the payload. The downloaded blob is written to a hidden temp file (.cache_<hex> in /tmp or /var/tmp, or dotnet_diag_<hex>.exe in %TEMP% on Windows), made executable, and launched detached (cmd.exe /c start /b on Windows, /bin/sh -c '... &' on POSIX). The package also ships a decoy telemetry module (lib/telemetry.js) that is not the actual behaviour.
- analyzed by
- Leitwacht
- first seen
- Aug 5, 2026, 01:00 PM
- analyzed
- Aug 5, 2026, 01:48 PM
Related advisories
- bnpl-blocks-analytics@35.3.8
- bigops-watchdog-worker@35.7.4
- bnpl-blocks-atom-bnpl-image@35.2.9
- bnpl-blocks-atom-bnpl-carousel-line@35.1.6
- bnpl-blocks-atom-bnpl-base-popup@35.2.9
- bnpl-blocks-atom-bnpl-no-index-link@35.1.2
- bnpl-blocks-atom-bnpl-link-avatar@35.4.8
- bnpl-blocks-atom-bnpl-dangerously-html@35.2.4
Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.