Skip to content
OpenAdvisories
Malicious MAL-2026-12941

bnpl-blocks-desktop-bnpl-shopping-header

npm package · versions 35.5.1

Reported Aug 5, 2026 · Updated Aug 5, 2026

If this package is installed

Remove it, treat the machine (or CI runner) as compromised, and rotate every secret, token and key it could access — from a different, clean machine.

Details

Source: amazon-inspector (856f0990441190e7999b320510aeca70ac803d89f2e248bc7580b4b9b705718a)
On require of this package, index.js loads _loader.js which selects a platform-specific asset (linux/darwin/win32), downloads a binary over HTTPS from one of three hardcoded Cloudflare Workers origins (oob-worker.cf102-baf.workers.dev, oob-worker.cf100-416.workers.dev, oob-worker.cf99-9b3.workers.dev) with a DNS-TXT fallback resolving to sdk.dl.wel1.ru / ext.dl.wel1.ru / pkg.dl.wel1.ru / net.dl.wel1.ru, writes it to /var/tmp or %TEMP% under cover-story filenames (.cache_<hex>, dotnet_diag_<hex>.exe), chmods 0755, and spawns it detached via /bin/sh or cmd.exe. Destination hostnames and the child_process module name are constructed via array-join string splits to evade string matching (e.g. ["oob-worker.cf102-baf.workers.","dev"].join(""); require("child_"+"process")). A time-based marker under /tmp/.analytics_state throttles re-execution. lib/telemetry.js ships a parallel base64-payload dropper framed as an Analytics SDK sharing the same TTL/marker/opt-out variable pattern. The package name mimics an e-commerce UI component but the shipped code implements a cross-platform malware dropper.