Malicious code in @cliphijack/santaclaude (npm)
The npm package @cliphijack/santaclaude contains malicious code that establishes a persistent WebSocket connection to a remote server, enabling remote code execution, privilege escalation via sudo manipulation, and vendor-controlled auto-updates. The package grants the attacker persistent root access and the ability to remotely control a local Claude Code TUI instance.
- Disclosed
- Last updated
- Blast radius
- Any developer or system that installed or ran @cliphijack/santaclaude
- Ecosystems
- Attack vectors
- Affected entities
- @cliphijack/santaclaudenpm package containing malicious code
The npm package @cliphijack/santaclaude was found to contain malicious code that establishes a persistent WebSocket connection to wss://santaclaude.app/ws. The malicious code dispatches server-supplied frames into the installer's host environment, enabling remote control of the system.
The package implements multiple attack mechanisms. A 'tailscale-up' action reads a password from server frames and invokes sudo -S -p with that password, then writes a passwordless NOPASSWD entry to /etc/sudoers.d/santaclaude-tailscale. This grants the remote endpoint persistent root capability on the infected host. Additional actions push server-sent text into a tmux window running claude --dangerously-skip-permissions, allowing the attacker to remotely drive the local Claude Code TUI with permission checks disabled.
The package also implements a supervisor loop that respawns itself via npx -y @cliphijack/santaclaude@<spec>, where the version specification is read from ~/.santaclaude-target and refreshed from GET https://santaclaude.app/api/cli-version. This creates a vendor-controlled auto-update mechanism that allows the attacker to steer installations onto arbitrary future versions of the package at any time.
The combined behavior constitutes a remote-controlled RCE and privilege-escalation channel into the installer's host, coupled with a vendor-controlled auto-update path that determines what code runs next.
Indicators of compromise
- Packages
- @cliphijack/santaclaude
- Domains
- santaclaude.app
Remediation
- Immediately uninstall @cliphijack/santaclaude from all systems
- Audit systems that installed this package for unauthorized sudo entries in /etc/sudoers.d/santaclaude-tailscale and remove them
- Check for unauthorized WebSocket connections to santaclaude.app and block at the network level
- Review system logs for evidence of unauthorized sudo usage or Claude Code TUI execution
- Rotate credentials and review access logs for any systems that may have been compromised
- Monitor for any remaining instances of the package or related auto-update mechanisms
- Consider full system audit and potential reinstallation of affected systems
Sources
- GitHub Advisory GHSA-mfhm-5r65-895x · GitHub Advisory Database
Cite this entry
"Malicious code in @cliphijack/santaclaude (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 5, 2026; last updated August 5, 2026. https://supplychainattack.org/incident/malicious-code-in-cliphijack-santaclaude-npm-1i92d7
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Malicious code in ranux-pro (npm)
The npm package ranux-pro contained malicious code disguised as a network socket library. The package shipped a multi-tenant WhatsApp bot with obfuscated code and a mutable dependency override pointing to a personal GitHub account, allowing attackers to execute arbitrary code at install and runtime.
npmCompromised packageMalicious commit - containedcritical
Malicious code in dxrs-dos (npm)
The npm package dxrs-dos is an openly-advertised DDoS/booter toolkit that executes malicious code on module load. It uses an unpinned dependency (deathoffather-project) for arbitrary code execution and extracts a password-protected PHP C2 panel archive into the caller's working directory.
npmCompromised packageMalicious commit - resolvedcritical
Malicious code in libas-signal (npm)
libas-signal, an npm package masquerading as a Signal Protocol library, contained malicious code that on require() injects a modified version of @whiskeysockets/baileys' Socket/newsletter.js to silently issue WhatsApp newsletter follow commands using the installer's authenticated session.
npmCompromised packageMalicious commit - containedcritical
Malicious code in @wizloft/harness-validation (npm)
The npm package @wizloft/harness-validation and sibling packages contain obfuscated malicious code that executes on import. The payload implements a blockchain-based dead-drop mechanism using Ethereum transactions to fetch and execute arbitrary code, allowing the attacker to remotely update the delivered payload.
npmCompromised packageMalicious commit