MAL-2026-10408 Malicious code in chain-js-utils (npm)
Malicious package
Published
MAL-2026-10408 is a malicious package: chain-js-utils (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-10408/ (Markdown: https://insights.sbomify.com/MAL-2026-10408/index.md)
- Package
- chain-js-utils
- Registry
- npm
What is MAL-2026-10408?
MAL-2026-10408 is a malicious package in chain-js-utils, published on 13 Jul 2026.
Official description
The package impersonates pino (ships pino's docs and headers, exports a
pino alias) but its actual runtime is an Express middleware factory in file.js that spawns a detached node lib/vcall.js child on each invocation. lib/vcall.js issues an HTTPS GET to https://api.jsonsilo.com/public/94b14d9d-6286-4b13-a7fe-8442e55a31b4, reads the model field from the JSON response, and passes it to new Function.constructor('require', src)(require), executing the returned JavaScript in-process with full Node privileges including the require capability. Retries up to five times. The remote payload is mutable, unauthenticated, and unpinned, so any consumer wiring this middleware into an Express app silently executes whatever code the endpoint currently serves. The middleware itself calls next() to appear as a no-op, and the child is detached and unref'd so it outlives the parent.What should I do about MAL-2026-10408?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.