Skip to content
OpenAdvisories
Malicious MAL-2026-6716 GHSA-7grv-5j2w-4wx3

test-pkg-pnpm

npm package · versions 1.0.1, 1.0.4, 1.0.2, 1.0.0, 1.0.3

Reported Jul 1, 2026 · Updated Aug 20, 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 (ae5df84cbdf3092d5f7b8f405248144eacdf5119c756c97726974e547810ebec)
On `npm install`, the package's `postinstall` script (`node demo-clean.js`) auto-executes two installer-side actions without consent. First, `openDemo()` platform-branches via `execSync` to open https://github.com/X3r0Day/BunnyHijack in the installer's default browser and to spawn the OS calculator (`calc` on Windows, `open -a Calculator` on macOS, `gnome-calculator`/`kcalc` on Linux) — the canonical `calc.exe` proof of unauthenticated code execution on the installer's host. Second, `cleanup()` walks every ancestor directory of `INIT_CWD`, `process.cwd()`, and the user's home directory, calling `fs.rmSync(..., {recursive:true, force:true})` against paths inside each ancestor's `node_modules`, `node_modules/.pnpm`, `node_modules/.bin/node*` shims, `~/.npm/_npx`, `~/.bun/install/cache`, and tmpdir entries; `cleanupPackageJson()` then reads each ancestor `package.json` and rewrites it via `fs.writeFileSync` after deleting matching entries from `dependencies`, `devDependencies`, `optionalDependencies`, and `peerDependencies`. The destructive recursive-force-rm operates well outside the package's own directory and reaches the user's home tree, and the spawned-process primitive can be retargeted to any binary in a future release.

Source: ghsa-malware (42ab043183eddea4feeeba6b04397cdda6189b7d4c4bfdb11197a88646a1deca)
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.