MAL-2026-12781 Malicious code in devplatform-spa-plugin-suspense (npm)
- Package
- devplatform-spa-plugin-suspense
- Registry
- npm
What is MAL-2026-12781?
MAL-2026-12781 is a malicious package in devplatform-spa-plugin-suspense, published on 5 Aug 2026.
Official description
index.js requires setup.js at load, which downloads a platform-specific native binary from string-concat-obfuscated Cloudflare Workers hosts (oob-worker.cf103-070.workers.dev, cf101-adf, cf99-9b3, cf100-416) with DNS-TXT-record fallback to 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/.cache_<hex> on Unix or a Windows temp path named dotnet_diag_<hex>.exe, chmod'd 0o755, and detached-spawned via /bin/sh -c or cmd.exe /c start. Hostnames and dangerous API names (child_process, chmodSync) are reconstructed from split literal arrays to evade static analysis, and there is no hash or signature verification of the downloaded payload. A second implementation of the same download-chmod-spawn pattern is present in lib/telemetry.js (~81KB), framed as an 'Analytics SDK', though it is not reached from the current main entry. Executing require() on this package causes attacker-controlled native code to run on the installer's machine.
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
What should I do about MAL-2026-12781?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.
Sources
Also known as GHSA-4996-xvm7-qf6q.