bnpl-blocks-blocknpm
Advisory published Updated
bnpl-blocks-block is a confirmed malicious npm package (MAL-2026-12906) that executes malicious code on install (malicious version 35.8.9). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in bnpl-blocks-block (npm)
What this malware does
On require of the package, index.js loads./compat.js which selects a platform-specific asset and downloads a binary from split-string-obfuscated Cloudflare Workers hosts (oob-worker.cf100-416.workers.dev, oob-worker.cf101-adf.workers.dev, oob-worker.cf99-9b3.workers.dev), with a DNS-TXT covert-channel fallback under *.wel1.ru that reads a chunk count from c.<domain> and base64-reassembles the payload from numbered TXT records. The fetched bytes are written to /tmp or %TEMP% under a disguised name (.cache<hex> / dotnet_diag_<hex>.exe), chmod 0755, then executed detached via /bin/sh -c "<path> &" on POSIX or cmd.exe /c start on Windows. The package's public API (class BnplBlocksBlock with init/version/configure) is a hollow shell with no real implementation; the sole effect of installing or importing this package is running the remotely fetched binary on the installer's host.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
Malicious packageFind it
Search your lockfiles and build artifacts for bnpl-blocks-block (version 35.8.9).
If you installed it — respond
Remove bnpl-blocks-block from your project and lockfile, then assume any secrets accessible to the build or runtime were exposed: rotate API keys, tokens, and credentials, and audit for unexpected outbound activity or persistence.
Did it already run?
If bnpl-blocks-block was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
Detect & block this
O3 blocks bnpl-blocks-block-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the malicious outbound activity and severs the channel.