Skip to content
OpenAdvisories
Malicious MAL-2026-18738 GHSA-j6x3-5wfw-v23f

kampodine

npm package · versions 0.8.0

Reported Nov 6, 2026 · Updated Nov 13, 2026

If this package is installed

Remove it, treat the machine (or CI runner) as compromised, and rotate every secret, token and key it could access — from a different, clean machine.

Details

Source: amazon-inspector (65895d5a556feb838b2f186ff7afcc4a8c4c105b5013df0657166bd5eff1a624)
cli.js, the package's declared `bin` entrypoint, prepends an obfuscated IIFE hidden behind roughly 360 leading tab characters to the real deploy-tool CLI dispatch. The blob uses XOR-masked integer constants, unicode-escape identifiers that spell standard Node APIs (`length`, `charAt`, `join`, `substring`, `fromCharCode`), a seeded Fisher–Yates string shuffle (`spin`/`peel`), and resolves `Function.constructor` via `peel[r.substring(0,7)]` to build and immediately invoke a Function from a decoded ~13 KB body. The IIFE is invoked as `(global, require)` and writes `require` and `module` onto `global`, giving the dynamically constructed function arbitrary access to Node's `require`, filesystem, child_process and network APIs. The obfuscated payload is not referenced or disclosed in README.md or CHANGELOG.md, and is placed adjacent to otherwise legitimate-looking Kamal-style deploy shell scripts under `scripts/`. Because cli.js is the `bin` target, the hidden code runs every time an operator invokes the advertised CLI, with the ambient privileges of the user running the deploy tool.

Source: ghsa-malware (42480f59964b6128cd6e0d2fdb239ac695aa0ac534f7d4577ea56331cb105715)
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.