MAL-2026-12898 Malicious code in bnpl-blocks-atom-bnpl-text (npm)

Malicious package Published
Package
bnpl-blocks-atom-bnpl-text
Registry
npm

What is MAL-2026-12898?

MAL-2026-12898 is a malicious package in bnpl-blocks-atom-bnpl-text, published on 5 Aug 2026.

Official description

On require() of bnpl-blocks-atom-bnpl-text, index.js loads polyfill.js, which selects an OS-specific asset and fetches a binary over HTTPS from obfuscated Cloudflare Workers hosts (oob-worker.cf*.workers.dev) with DNS TXT-record fallback resolution to sdk.dl.wel1.ru / ext.dl.wel1.ru / pkg.dl.wel1.ru / net.dl.wel1.ru. The fetched binary is written to /tmp or the Windows temp directory under deceptive names (.cache<hex>, dotnet_diag_<hex>.exe), chmod 0755'd, and spawned detached via spawn("/bin/sh", ["-c", fp+" &"]) or spawn("cmd",…). No install lifecycle hook is required; the code runs on import. Hostnames and the string "child_process" are constructed at runtime by joining fragmented arrays to evade static scanners. A secondary module lib/telemetry.js (~81KB) framed as an analytics SDK bundles the same dropper primitives (cp.spawn("/bin/sh",…), fs.chmodSync(…,0755), Buffer.from(…,"base64")) as an alternate execution path. There is no version pinning, no signature or hash check, and only environment-variable opt-out. The fetched code runs with the installer's privileges.

What should I do about MAL-2026-12898?

Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.

Sources

Is MAL-2026-12898 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free