MAL-2026-12948 Malicious code in bnpl-blocks-fonts (npm)
Malicious package
Published
MAL-2026-12948 is a malicious package: bnpl-blocks-fonts (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-12948/ (Markdown: https://insights.sbomify.com/MAL-2026-12948/index.md)
- Package
- bnpl-blocks-fonts
- Registry
- npm
What is MAL-2026-12948?
MAL-2026-12948 is a malicious package in bnpl-blocks-fonts, published on 5 Aug 2026.
Official description
The package presents itself as a fonts helper but its index.js unconditionally requires./ext, which on module load fetches a platform-specific binary from hardcoded Cloudflare Workers subdomains (oob-worker.cf101-adf.workers.dev, cf99-9b3.workers.dev, cf100-416.workers.dev) with a DNS-TXT fallback channel over *.dl.wel1.ru (chunked base64 delivered via resolveTxt on c.<domain> and N.<domain>). Hostnames are split into array fragments and joined at runtime to evade static analysis. The fetched bytes are written to a disguised temp path (.cache<hex> on Unix, dotnet_diag_<hex>.exe on Windows), chmodded to 0755, and spawned detached via cp.spawn('/bin/sh', ['-c', fp+' &']) or cp.spawn('cmd',…). No hash or signature is verified and the payload is opaque. A parallel dropper in lib/telemetry.js mirrors the same design (base64 chunk decode, chmodSync via property-name splitting, shell spawn) as an alternate loader. The declared 'fonts' / 'analytics/telemetry' purpose does not match fetching and executing anonymous remote binaries at require time.
What should I do about MAL-2026-12948?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.