Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

chai-pluginnpm

chai-plugin is a confirmed malicious npm package (MAL-2026-5904) that typosquats a legitimate package to trick installs (malicious versions 4.5.2, 4.5.3, 4.5.4…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in chai-plugin (npm)

MAL-2026-5904
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall chai-plugin

What this malware does

Package name chai-plugin impersonates the popular chai assertion library — README and copyright headers reference chaijs.com / chaijs/chai, but the homepage is the lookalike chaiplugin.com and the author is unrelated to chai's real maintainer. Two obfuscator.io payloads (hex-named identifiers, rotated string array with a base64+URI custom decoder, control-flow obfuscation, arithmetic self-check) are glued onto otherwise-legitimate chai source. (1) lib/chai/utils/assertion.js builds a URL with a query parameter, calls require('http'|'https').get(url,...), accumulates the response body, then executes the bytes via new Function('require', body)(require) — an import-time dropper that runs whatever JS the remote server currently serves, with full Node require capability. (2) lib/chai.js destructures spawn from child_process and unconditionally invokes a top-level function that runs spawn(<cmd>, [path.join(__dirname, <sibling>), JSON.stringify(opts)], {detached: true, stdio:...}).unref(), backgrounding a malicious worker that survives the parent process. Both fire at module load via index.js -> require('./lib/chai'). The combination of typosquat name, obfuscation smuggled onto legitimate source, network-fetch-and-eval, and detached subprocess launch is a malicious supply-chain dropper.

Malicious versions

4 flagged
4.5.24.5.34.5.44.5.5

Indicators of compromise (SHA-256)

67e08b149ec19ba5622783cfdf864741264b5f6cbe5f56a15c8553c6f1ab5106
d8288900390b603834b85d1945f829d1c5386bd7cbca56ded07b27557ddb4d0f
955522a906103bb6eae62759721a35b120cdaffd1d2747a2f1b73b37c6d2d1db
9bbe8cb82be82f91cf6332988d29fcdd4e7574f766af4d524ce5c08edc9f94f6

Detection & response playbook

Typosquat
  1. Find it

    Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for chai-plugin (4 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging chai-plugin across your stack and pipelines.

  2. If you installed it — respond

    chai-plugin is a typosquat — you almost certainly intended a legitimately-named package. Remove chai-plugin, install the correct package, and rotate any secrets exposed during the install since post-install scripts may have already run.

  3. Did it already run?

    If chai-plugin was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.

  4. How O3 protects you

    O3 blocks chai-plugin before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.

Frequently asked questions

No. chai-plugin on npm has been identified as a malicious package (versions 4.5.2, 4.5.3, 4.5.4, 4.5.5 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-006789IN-MAL-2026-006796IN-MAL-2026-006792IN-MAL-2026-006788

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks chai-plugin-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the malicious outbound activity and severs the channel.

Explore

chai-plugin (npm) malicious package — MAL-2026-5904 | O3 Security