Skip to content
OpenAdvisories
Malicious MAL-2026-13026

bnpl-molecule-mobile-bnpl-selector

npm package · versions 35.1.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 (daf9828096a3c18e00ad577689ebcf4e4fa304a8702db4a0993063c95182530e)
On require() of the package, index.js loads _adapter.js, which runs an asynchronous dropper: it selects a platform-specific asset, downloads an executable via https.get from one of three Cloudflare Workers hosts (oob-worker.cf102-baf.workers.dev, oob-worker.cf103-070.workers.dev, oob-worker.cf100-416.workers.dev), writes the payload to /var/tmp/.cache_<hex> with chmod 0755 on Unix or to the Windows temp directory as dotnet_diag_<hex>.exe (masquerading as a.NET diagnostic tool), and spawns it detached via /bin/sh -c '<path> &' or cmd.exe /c start /b. Destination hostnames, the child_process require, and chmodSync are hidden behind array-join string splits (e.g. "child_"+"process", ["oob-worker.cf102-baf.wor","kers",".d","ev"].join("")). A DNS-over-TXT fallback resolves c.sdk.dl.wel1.ru / ext.dl.wel1.ru / pkg.dl.wel1.ru / net.dl.wel1.ru for a chunk count, then reassembles a base64 payload from numbered TXT records under those subdomains and executes it identically, providing a covert transport that evades HTTP egress filtering. The dropper is framed with a fake "Analytics SDK" / DISABLE_TELEMETRY cover story. A second copy of the same dropper primitives is bundled under lib/telemetry.js (~81 KB) but is not required on the current execution path.