MAL-2026-12946 Malicious code in bnpl-blocks-desktop-large-bnpl-reviews (npm)
Malicious package
Published
MAL-2026-12946 is a malicious package: bnpl-blocks-desktop-large-bnpl-reviews (npm). Every version was published to cause harm.
Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.
Reference: https://insights.sbomify.com/MAL-2026-12946/ (Markdown: https://insights.sbomify.com/MAL-2026-12946/index.md)
- Package
- bnpl-blocks-desktop-large-bnpl-reviews
- Registry
- npm
What is MAL-2026-12946?
MAL-2026-12946 is a malicious package in bnpl-blocks-desktop-large-bnpl-reviews, published on 5 Aug 2026.
Official description
On require() of the package, index.js loads bridge.js which detects OS/arch and downloads a platform-specific binary from Cloudflare Workers hosts whose names are reconstructed at runtime by joining split string arrays (e.g. 'oob-wo'+'rker.cf103-070'+'.workers.de'+'v'). If HTTPS mirrors fail, a DNS-TXT covert channel against hosts like sdk.dl.wel1.ru reassembles a base64 payload from a count record plus indexed TXT chunks. The fetched bytes are written to a masquerading path in /var/tmp or %TEMP% (.cache<hex>, dotnet_diag_<hex>.exe), chmodded 0755 on POSIX, and spawned detached via cp.spawn('/bin/sh', ['-c', fp+' &'], {detached:true}) or the equivalent cmd invocation on Windows. There is no hash, signature, or publisher verification on the downloaded content. The package presents itself as a 'bnpl blocks' UI component, which does not correspond to fetching and executing an opaque native binary. Destination hosts are non-publisher anonymous workers.dev endpoints and a.ru DNS covert channel.
What should I do about MAL-2026-12946?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.