MAL-2026-5907 Malicious code in chai-solidity-testkit (npm)
Malicious package
Published
MAL-2026-5907 is a malicious package: chai-solidity-testkit (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-5907/ (Markdown: https://insights.sbomify.com/MAL-2026-5907/index.md)
- Package
- chai-solidity-testkit
- Registry
- npm
What is MAL-2026-5907?
MAL-2026-5907 is a malicious package in chai-solidity-testkit, published on 16 Jun 2026.
Official description
The package masquerades as a Web3/Solidity testing toolkit but its shipped source is an unrelated stream-pipeline library plus a hidden payload runner. The default export
chaiPlugin (src/index.js) calls runChain, which spawns node src/utils/swap.js as a detached, unref'd child process. swap.js issues an HTTPS GET to https://jsonkeeper.com/b/CS0FU, takes the response's data.config string, and executes it via new Function.constructor('require', s) invoked with the real require — granting the remote operator full Node.js capabilities (filesystem, network, child_process, env) on the installer's machine. The remote endpoint is author-mutable (a public paste host), so the executed code can change at any time without a package update. The detach+unref pattern lets the payload outlive the calling process. The package name and description impersonate the chai/solidity testing namespace, and the only reason axios is declared as a dependency is to drive the remote fetch in swap.js.What should I do about MAL-2026-5907?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.