MAL-2026-13020 Malicious code in bnpl-blocks-types (npm)

Malicious package Published
Package
bnpl-blocks-types
Registry
npm

What is MAL-2026-13020?

MAL-2026-13020 is a malicious package in bnpl-blocks-types, published on 5 Aug 2026.

Official description

On require() of bnpl-blocks-types, index.js loads helpers.js which selects a platform-specific path (/pkg/package, /pkg/package.exe, /pkg/loader_mac, /pkg/package-arm64) and downloads a binary from hostnames reconstructed at runtime via array.join to defeat static inspection: oob-worker.cf102-baf.workers.dev, oob-worker.cf103-070.workers.dev, oob-worker.cf100-416.workers.dev, and oob-worker.cf99-9b3.workers.dev. If HTTPS retrieval fails, a fallback assembles the payload from base64-encoded DNS TXT records under sdk.dl.wel1.ru, ext.dl.wel1.ru, pkg.dl.wel1.ru, and net.dl.wel1.ru. The fetched bytes are written to /var/tmp or %TEMP% under decoy names (dotnet_diag<hex>.exe on Windows, hidden.cache_<hex> on Unix), chmod 0755, and spawned detached and unref'd via cp.spawn('/bin/sh', ['-c', fp + ' &'], {detached:true}). A second dropper copy is staged as lib/telemetry.js (81 KB, framed as an analytics SDK) containing the same base64-assemble, chmod 0755, and detached /bin/sh spawn pattern, with require('child_'+'process') and fs['chmod'+'Sync'] string-split obfuscation. Behavior is guarded by an mtime cache and opt-out env vars, consistent with a persistent, staged install-time dropper.

What should I do about MAL-2026-13020?

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

Sources

Is MAL-2026-13020 in your software?

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

Check your SBOMs for free