MAL-2026-16380 Malicious code in chai-logger (npm)
Malicious package
Published
MAL-2026-16380 is a malicious package: chai-logger (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-16380/ (Markdown: https://insights.sbomify.com/MAL-2026-16380/index.md)
- Package
- chai-logger
- Registry
- npm
What is MAL-2026-16380?
MAL-2026-16380 is a malicious package in chai-logger, published on 22 Sep 2026.
Official description
The package presents itself as a Chai logging plugin but its main entry
index.js requires ./lib/query.js, a ~4 MB obfuscator.io-encoded module (23,868-entry rotated string array, T/j decoder wrappers, hex-property indirection) that executes at the top level as soon as the package is required. The remaining files under lib/ (proto.js, levels.js, tools.js, etc.) are verbatim copies of pino source, unrelated to the advertised Chai plugin API — a cover story around the obfuscated blob. package.json declares axios ^1.10.0 as a runtime dependency, and the only reference to axios in the shipped code is inside the obfuscated body of lib/query.js, giving the payload an HTTP client whose destination is reconstructed at runtime from the rotated string array. Author metadata points to jsonspack.com, unrelated to Chai or pino. The combination of import-time execution of a heavily obfuscated payload, a mismatched cover story, copied third-party source used as filler, and an HTTP client declared only for use inside the obfuscated code is the canonical npm credential/data-stealer shape.What should I do about MAL-2026-16380?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.