Executive brief
@siteboon/claude-code-ui is a Node.js web application that provides a code editing and shell interface. The application is vulnerable to unauthenticated remote code execution: attackers can forge authentication tokens using a hardcoded default secret, bypass WebSocket validation, and execute arbitrary OS commands through unsanitized shell command parameters. Any instance running with default configuration is immediately compromisable without any credentials.
Technical details
The vulnerability chains three distinct flaws: (1) an insecure default JWT secret ('claude-ui-dev-secret-change-in-production') that is public in source code and used when JWT_SECRET environment variable is unset, (2) a WebSocket authenticator that verifies JWT signature but skips database user validation—unlike REST endpoints—allowing forged tokens with non-existent userIds to authenticate, and (3) OS command injection in the WebSocket shell handler where projectPath and initialCommand parameters are directly interpolated into bash commands without sanitization (CWE-78). The attack requires network access to the WebSocket endpoint but no prior authentication or user interaction. An unauthenticated attacker can achieve full OS command execution as the server process user, read/write files, and pivot laterally. The patch is available in version 1.25.0.
Affected products
- @siteboon claude-code-ui <= 1.24.0
Timeline
- 2026-03-10: disclosed
- 2026-03-10: patched: Fixed in version 1.25.0