MAL-2026-10050
Malicious code in chai-defender (npm)
Details
--- _-= Per source details. Do not edit below this line.=-_
## Source: amazon-inspector (14f276305fd5e43b60bbfd1048d8792ef7f72734c28cfe533d368c0fc199a0fe) On require('chai-defender'), index.js invokes launchDeflectBootstrap() which spawns a detached background node process running lib/caller.js. That process loads lib/initstate.js, which performs an HTTP GET against a hardcoded remote endpoint (http://check-server-state.vercel.app/server/v2) and passes the response body into `new Function('require', <response>)(require)`, executing attacker-controlled JavaScript with access to Node's require in the installer's process. The package presents itself as a Chai assertions plugin ('Security-focused Chai assertions'), but this fetch-and-exec behavior is unrelated to any assertion functionality. The lib/ directory is padded with files whose names mimic the pino logger project (multistream.js, transport.js, redaction.js, levels.js, symbols.js, worker.js) and reference a non-existent./flowlimit.js module; these files are not wired into index.js and appear to exist to make the package look substantial while the real payload is lib/const.js + lib/initstate.js. Plain HTTP transport additionally exposes the eval channel to in-path payload injection. Any project that requires this package hands remote code execution to whoever controls check-server-state.vercel.app.
Are you affected?
Enter the version of the package you're using.
Affected packages
No fixed version published yet for chai-defender (npm). Pin to a known-safe version or switch to an alternative.
References
- https://www.npmjs.com/package/chai-defender/v/1.0.2 [PACKAGE]
- https://www.npmjs.com/package/chai-defender/v/1.0.0-beta.1 [PACKAGE]
- https://www.npmjs.com/package/chai-defender/v/1.0.1-beta [PACKAGE]
- https://www.npmjs.com/package/chai-defender/v/1.0.1 [PACKAGE]
- https://www.npmjs.com/package/chai-defender/v/1.1.0 [PACKAGE]
- https://www.npmjs.com/package/chai-defender/v/1.1.1 [PACKAGE]