MAL-2026-13958 Malicious code in power-assert-plus (npm)
Malicious package
Published
MAL-2026-13958 is a malicious package: power-assert-plus (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-13958/ (Markdown: https://insights.sbomify.com/MAL-2026-13958/index.md)
- Package
- power-assert-plus
- Registry
- npm
What is MAL-2026-13958?
MAL-2026-13958 is a malicious package in power-assert-plus, published on 13 Aug 2026.
Official description
power-assert-plus is a typosquat of power-assert. On every require(), index.js detach-spawns
node build/power-assert-plus.js. That build file is obfuscator.io-encoded (string-array + custom base64 alphabet) and, after decoding, dynamically requires http/https, GETs a remote URL, and passes the response body to new Function('require', body)(require), executing attacker-controlled JavaScript with Node's require in the installer's process context. The README frames build/power-assert-plus.js as a browserify bundle of the library, but the shipped 4KB payload is a network loader with no assertion library code; the module name, host, and eval sink are all hidden behind the string-array decoder.What should I do about MAL-2026-13958?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.