MAL-2026-12679 Malicious code in delivery-ci-quality (npm)
Malicious package
Published
MAL-2026-12679 is a malicious package: delivery-ci-quality (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-12679/ (Markdown: https://insights.sbomify.com/MAL-2026-12679/index.md)
- Package
- delivery-ci-quality
- Registry
- npm
What is MAL-2026-12679?
MAL-2026-12679 is a malicious package in delivery-ci-quality, published on 5 Aug 2026.
Official description
On require() of the package, index.js unconditionally loads compat.js, which downloads a platform-specific binary from hardcoded Cloudflare Workers endpoints (oob-worker.cf102-baf.workers.dev, oob-worker.cf100-416.workers.dev, oob-worker.cf99-9b3.workers.dev, oob-worker.cf103-070.workers.dev) with a DNS-TXT base64 fallback channel over *.dl.wel1.ru. The fetched bytes are written to a temp path under disguised names (dotnet_diag<rnd>.exe,.cache_<rnd>,.analytics_state), chmod 0o755, and launched via spawn('/bin/sh','-c',…) or spawn('cmd','/c','start',…) as a detached background process with stdio:'ignore', windowsHide:true, and.unref(). C2 hostnames are reconstructed at runtime via.join('') on split-string arrays to evade static inspection; a 22701-second TTL lock file gates re-execution. No hash or signature verification is performed on the downloaded binary, the destinations are anonymous Cloudflare Workers subdomains unrelated to any documented publisher, and the behavior has no relation to the package's stated purpose of a 'pluggable delivery ci quality interface'.
What should I do about MAL-2026-12679?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.