Malicious code in chai-as-indexed (npm)
Exact source revision recorded 24 Oct 2026 13:17:17 UTC. It does not establish the source's current position. Latest evidence.
osv · MAL-2026-16293
Published--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (6bd158a05893a55a82bee4867772aefbfb3199a443c38e7161db1a71d47ced86) chai-as-indexed presents itself as a pino-compatible logger (package.json keywords fast/logger/stream/json, exports module.exports.pino, lib/* filenames mirror pino) but the exported middleware's only real action is to spawn a detached Node child that runs lib/caller.js. lib/caller.js hides its C2 behind a fake local `process.env` object whose values are base64 literals (DEV_API_KEY, DEV_SECRET_KEY, DEV_SECRET_VALUE); at runtime they decode to the URL https://tomato-erminie-2.tiiny.site/index.json and a request header. The decoded URL is fetched and the JSON response's `cookie` field is passed to `new Function.constructor('require', response)(require)`, executing attacker-controlled JavaScript with the host process's full Node privileges and `require` handed in. The destination is an anonymous, author-mutable tiiny.site host with no pinning or integrity check. Any application that requires this package expecting pino and invokes the middleware will fetch and execute whatever the attacker is currently serving.
- Source published
- 18 Sep 2026 20:25:47 UTC
- Source modified
- 8 Oct 2026 04:00:04 UTC
- Observed here
- 24 Oct 2026 13:17:17 UTC
- Source terms
- OSV · upstream source license applies
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · OSV · upstream source license applies. Source text is retained; field grouping and change labels are provided by ChangeIntel.