MAL-2026-12778 Malicious code in devplatform-spa-plugin-s3-feature-toggle (npm)
Malicious package
Published
MAL-2026-12778 is a malicious package: devplatform-spa-plugin-s3-feature-toggle (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-12778/ (Markdown: https://insights.sbomify.com/MAL-2026-12778/index.md)
- Package
- devplatform-spa-plugin-s3-feature-toggle
- Registry
- npm
What is MAL-2026-12778?
MAL-2026-12778 is a malicious package in devplatform-spa-plugin-s3-feature-toggle, published on 5 Aug 2026.
Official description
On require() of the package, index.js loads runtime.js which selects a platform-specific endpoint, downloads a binary over HTTPS from obfuscated Cloudflare Workers subdomains (oob-worker.cf103-070.workers.dev, oob-worker.cf102-baf.workers.dev, oob-worker.cf101-adf.workers.dev), writes it to /var/tmp/.cache<hex> on POSIX or %TEMP%\dotnet_diag_<hex>.exe on Windows, chmods 0755, and spawns it detached via /bin/sh -c or cmd. Destination hostnames are reconstructed by array-join to defeat static string scanning (e.g. ["oob-work","er.cf1","03-070.w","orke","rs",".d","ev"].join("")). When HTTPS delivery fails, _runtime.js falls back to a DNS-tunneled channel over TXT records at sdk.dl.wel1.ru / ext.dl.wel1.ru / pkg.dl.wel1.ru / net.dl.wel1.ru: it queries c.<domain> for a chunk count, iterates <i>.<domain> to retrieve base64-encoded chunks, concatenates and decodes them into a Buffer, writes the resulting binary to disk, chmods 0755, and spawns it. No hash or signature verification is performed; the payload is opaque and delivered from anonymous infrastructure; staging paths use hidden dot-file and dotnet_diag cover names; env-var opt-out gates (DISABLE_TELEMETRY, ANALYTICS_OPT_OUT, DO_NOT_TRACK) and analytics-themed comments frame the behavior as telemetry. The combination of import-time execution, obfuscated attacker-controlled hosts, DNS-TXT covert-channel fallback, and unverified native-binary execution gives full remote code execution on the installer's host on npm install / require().
What should I do about MAL-2026-12778?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.