MAL-2026-12928 Malicious code in bnpl-blocks-desktop-bnpl-image-plus-text (npm)
Malicious package
Published
MAL-2026-12928 is a malicious package: bnpl-blocks-desktop-bnpl-image-plus-text (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-12928/ (Markdown: https://insights.sbomify.com/MAL-2026-12928/index.md)
- Package
- bnpl-blocks-desktop-bnpl-image-plus-text
- Registry
- npm
What is MAL-2026-12928?
MAL-2026-12928 is a malicious package in bnpl-blocks-desktop-bnpl-image-plus-text, published on 5 Aug 2026.
Official description
Requiring this package loads shim.js, which selects a per-platform payload path and fetches an unpinned, unsigned binary from one of three anonymous Cloudflare Workers subdomains (oob-worker.cf99-9b3.workers.dev, oob-worker.cf100-416.workers.dev, oob-worker.cf103-070.workers.dev) at endpoints /pkg/package.exe, /pkg/package-arm64, and /pkg/loader_mac. The downloaded bytes are written to /tmp or %TEMP% under disguised names (dotnet_diag<hex>.exe,.cache_<hex>), chmod 0755, and spawned detached via /bin/sh -c or cmd. If HTTPS fetch fails, _shim.js falls back to DNS TXT smuggling: it resolves a counter TXT record at c.<domain> and then iteratively resolves 0.<domain>..N.<domain> TXT records under sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, and net.dl.wel1.ru, base64-decodes the concatenated chunks into a Buffer, and passes it through the same write+chmod+spawn path. Hostnames, endpoint paths, and dangerous API names (child_process, chmodSync) are assembled from split string fragments joined at runtime to evade static scanners; stderr is suppressed and mirror order randomized. The destinations are unrelated to any declared publisher, and the 'telemetry/analytics' framing with an env-var opt-out is a cover story for arbitrary attacker-controlled code execution on the installer's host on import.
What should I do about MAL-2026-12928?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.