MAL-2026-6350 Malicious code in chai-as-operated (npm)
Malicious package
Published
MAL-2026-6350 is a malicious package: chai-as-operated (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-6350/ (Markdown: https://insights.sbomify.com/MAL-2026-6350/index.md)
- Package
- chai-as-operated
- Registry
- npm
What is MAL-2026-6350?
MAL-2026-6350 is a malicious package in chai-as-operated, published on 23 Jun 2026.
Official description
Package name impersonates the widely-used
chai-as-promised (README instructs chai.use(chaiAsOperated)) and the README badges further impersonate pino (npm/GitHub Actions shields point at pinojs/pino). On require('chai-as-operated'), index.js exposes a middleware factory that spawns a detached node./lib/initializeCaller.js. That script defines a fake process object containing base64-obfuscated values (DEV_API_KEY decodes to https://amethyst-lorrin-26.tiiny.site/index.json, plus obfuscated x-secret-key header credentials), then performs axios.get(apiEndpoint,...) and executes the response body via new Function.constructor('require', response)(require) with retry logic. The remote payload runs with full Node require access in a detached background process. The destination is a free tiiny.site host — author-mutable, anonymous infrastructure — and the URL is hidden behind base64 to evade casual review and string scanners. This is a classic typosquat + remote-execution dropper.What should I do about MAL-2026-6350?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.