{"answers":{"affected":"1 open source package ship an affected version, including chai-solidity-testkit.","exploited":"There is no known exploitation of MAL-2026-5907 in the wild and no public exploit code.","fix":"Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.","what":"MAL-2026-5907 is a malicious package in chai-solidity-testkit, published on 16 Jun 2026."},"fix_prompt":"MAL-2026-5907 is a malicious package: chai-solidity-testkit (npm). Every version was published to cause harm.\n\nTask:\n1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.\n2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.\n3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.\n4. If the package is not used anywhere, say so and change nothing.\n\nReference: https://insights.sbomify.com/MAL-2026-5907/ (Markdown: https://insights.sbomify.com/MAL-2026-5907/index.md)","id":"MAL-2026-5907","markdown":"https://insights.sbomify.com/MAL-2026-5907/index.md","name":"MAL-2026-5907","record":{"aliases":[],"analysis":null,"analysis_generated_by":null,"assigner":null,"cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"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.","ecosystems":["npm"],"exploits":{"exploitdb":null,"first_seen":null,"github_poc":null,"max_poc_stars":null,"metasploit":null,"nuclei":null,"refs":[],"tier":null},"has_fix":false,"headline":"Malicious code in chai-solidity-testkit (npm)","id":"MAL-2026-5907","indexable":true,"kev":null,"kind":"malicious","links":{"ecosystem":"npm","product":null,"products":[],"type":null,"year":"2026"},"n_packages":1,"n_references":null,"packages":[{"ecosystem":"npm","fixed":[],"introduced":[],"last_affected":[],"package":"chai-solidity-testkit","purl":"pkg:npm/chai-solidity-testkit","source":"MAL-2026-5907"}],"products":null,"published":"2026-06-16","related":[],"sources":[{"class":"attribution","licence":"Apache-2.0","name":"OpenSSF Malicious Packages","prefix":"MAL"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":null,"updated":null,"vendors":null},"summary":null,"url":"https://insights.sbomify.com/MAL-2026-5907/"}