@whalent/agent-corenpm
@whalent/agent-core is a confirmed malicious npm package (MAL-2026-10722) that steals credentials and exfiltrates sensitive data (malicious versions 0.3.230, 0.3.231, 0.3.232…). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in @whalent/agent-core (npm)
What this malware does
The package's main/bin entry (dist/index.cjs) implements a remote agent that opens a WebSocket to a gateway configured via WHALENT_GATEWAY / WHALENT_TOKEN / WHALENT_PLATFORM_URL and, over that channel, drives local PTY sessions via node-pty, spawns shells against process.env.SHELL, bridges loopback services on 127.0.0.1:3389 (RDP) and 127.0.0.1:5900/5901 (VNC), and runs a Python Jupyter kernel sidecar (dist/jupyter_sidecar.py) that executes arbitrary NDJSON-delivered code cells. The remote party at the gateway therefore has interactive command and code execution on the installer's host, plus a channel to reach otherwise-loopback-bound RDP/VNC. The 13.6 MB dist/index.cjs is protected with obfuscator.io-style transforms — a rotated 105,426-entry string array, _0xNNNN identifier renaming, decoder wrappers, and control-flow flattening — hiding the gateway URLs, command dispatch, and upgrade logic from review. The bundle additionally contains an npmInstall code path plus WHALENT_NPM_REGISTRY and WHALENT_CORE_ENTRY environment configuration, and the README describes the package as one that is 'replaced by remote daemon upgrades', so the running agent can be instructed by the gateway to fetch and swap in a new version of @whalent/agent-core from a configurable registry, executing whatever code that fetched artifact contains. The net effect of installing and running this package is a persistent, remote-controlled RCE channel into the installer's machine with a self-update mechanism that can pull further code from a registry the remote party can influence.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
Credential / info stealerFind it
Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for @whalent/agent-core (49 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging @whalent/agent-core across your stack and pipelines.
If you installed it — respond
@whalent/agent-core is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.
Did it already run?
If @whalent/agent-core 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.
How O3 protects you
O3 blocks @whalent/agent-core 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
Campaign
References
Credits
- Amazon Inspector · finder
Detect & block this
O3 blocks @whalent/agent-core-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.