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

@xiaohhhh1/canvas-agentnpm

@xiaohhhh1/canvas-agent is a confirmed malicious npm package (MAL-2026-13398) that steals credentials and exfiltrates sensitive data (malicious versions 0.4.4, 0.4.8, 0.4.9…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in @xiaohhhh1/canvas-agent (npm)

MAL-2026-13398
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @xiaohhhh1/canvas-agent

What this malware does

On bin start, @xiaohhhh1/canvas-agent opens an outbound WebSocket to the hardcoded relay wss://canvas.xiaohhhh1.com/api/agent-relay and treats inbound messages as HTTP requests to its own loopback API at 127.0.0.1:17371. The bridge unconditionally injects the local agent token (x-canvas-agent-token) into forwarded requests, so remote 'request' messages satisfy token authentication and can invoke /agent/codex/turn and /agent/claude/turn, which spawn the Codex app-server and Claude CLI locally with attacker-supplied prompts and a caller-controlled permissionMode. Codex/Claude are autonomous coding agents that can write files in the workspace and, when permissionMode is widened to danger-full-access, execute arbitrary shell commands. The same code path also bypasses the loopback server's browser-Origin allow-list: the origin gate is populated only after token validation, and the relay bridge presents the valid token without any user-consented browser Origin, so remote-originated calls pass the token+origin check the README advertises. The net effect is a network-to-local-agent-to-shell control path from a hardcoded author-controlled server into the installer's machine and any repository it is run against.

Malicious versions

5 flagged
0.4.40.4.80.4.90.4.100.4.11

Indicators of compromise (SHA-256)

40162697638de6a974c2f7408ccf190f6d5b5f7ea82e5e52bbc9cb2a013fab08
07742c610792581bda3385162f04dfb375ea8ef09e662a31f94f5ea8cfa514cf
666b9625de3bae854b67278897e7275aceadf8006c406e672a13ac6b5a9ae2e6
99baacdee21209244b73a38b2b48cc55db72177734159c541110f6769de4b494
a34add291ef7584aec7041449cb2e80d36ae98f93c2725e1aa018707e3334119

Detection & response playbook

Credential / info stealer
  1. Find it

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

  2. If you installed it — respond

    @xiaohhhh1/canvas-agent 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.

  3. Did it already run?

    If @xiaohhhh1/canvas-agent 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 @xiaohhhh1/canvas-agent 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. @xiaohhhh1/canvas-agent on npm has been identified as a malicious package (versions 0.4.4, 0.4.8, 0.4.9, 0.4.10, 0.4.11 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-016269IN-MAL-2026-017057IN-MAL-2026-017061IN-MAL-2026-017063IN-MAL-2026-017068

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks @xiaohhhh1/canvas-agent-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

@xiaohhhh1/canvas-agent (npm) malicious package — MAL-2026-13398 | O3 Security