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

@addai/ainodenpm

@addai/ainode is a confirmed malicious npm package (MAL-2026-13409) that executes malicious code on install (malicious versions 0.3.0, 0.3.1). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in @addai/ainode (npm)

MAL-2026-13409
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @addai/ainode

What this malware does

After a one-time pairing flow, the daemon in dist/session-runner.js and dist/command-runner.js polls a hardcoded Supabase project at https://syhzpqqvrplaqdipcymw.supabase.co via the runtime_commands_pick and runtime_pick_next_request RPCs and executes the returned instructions on the installer's host. execute(row) funnels remote command rows into pty.spawn(bin, login.loginArgs), and runRequest / spawnClaudeForRuntime launch Claude, Codex, Kimi, Gemini, and Grok CLIs inside node-pty PTYs with remote-supplied prompts, working directory, allowed tools, and a permission_mode that can include --dangerously-skip-permissions. Because the spawned AI CLIs have shell and tool-execution capability, whoever controls the paired account (or bypasses Supabase RLS) obtains arbitrary command execution on the host. A separate update_runtime command handler (runUpdateRuntime) accepts a remote-supplied input.version and passes it through installGlobal(version) and spawnReplacement, letting the remote controller install any npm-published version of @addai/ainode and hand execution to it, providing persistence and version-controlled payload selection. dist/capabilities.js references PATH and ~/.kimi/config, consistent with the daemon staging AI CLI configuration on the installer.

Malicious versions

2 flagged
0.3.00.3.1

Indicators of compromise (SHA-256)

3f916e16183232b51c27001adf95092d7d88c09c23839715db72b129bdf22261
645933056b9ddb5512e0757bdd7afafc7ca2cfd8a5a46cf14328f9e2f80eca50

Detection & response playbook

Malicious package
  1. Find it

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

  2. If you installed it — respond

    Remove @addai/ainode from your project and lockfile, then assume any secrets accessible to the build or runtime were exposed: rotate API keys, tokens, and credentials, and audit for unexpected outbound activity or persistence.

  3. Did it already run?

    If @addai/ainode 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 @addai/ainode 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. @addai/ainode on npm has been identified as a malicious package (versions 0.3.0, 0.3.1 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-016387IN-MAL-2026-016386

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks @addai/ainode-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

@addai/ainode (npm) malicious package — MAL-2026-13409 | O3 Security