Caveat verdict
tg-canvas
openclaw-tg-canvas
Provides a JWT-authenticated WebSocket terminal with full server-side PTY/bash shell access; though gated by Telegram HMAC verification and ALLOWED_USER_IDS, exposing a shell over a WebSocket is elevated-privilege capability warranting RISKY.
⚠ Flagged for review — coarse, uncorroborated signal, not a confirmed exploit. Review the config yourself before installing.
Automated static analysis — not a human review. Caveat flags capabilities, not confirmed intent, and can produce false positives. Disagree with this verdict? Use Dispute below.
Findings (9)
HTTP request to bare IP address — common in malicious payloads
README.md · code · http://127.0.0.1
References sudo — requests elevated privileges
README.md · code · sudo
<script> tag in markdown — potential code injection
README.md · prose · downgraded · <script>
Accesses OpenClaw config/secrets directly
README.md · prose · downgraded · ~/.openclaw/openclaw.json
Uses spawn() — can execute external programs
server.js · prose · downgraded · spawn(
Opens WebSocket connection
SKILL.md · prose · downgraded · WebSocket
Accesses sensitive environment variables
bin/tg-canvas.js · prose · downgraded · process.env.PUSH_TOKEN
String.fromCharCode — can build strings to evade detection
miniapp/app.js · prose · downgraded · String.fromCharCode
Node http/https module — low-level network access
server.js · prose · downgraded · require("http")
Why the tier is capped
Execution sink present in raw bytes (Hard Floor: class B/G). Final tier capped at Caution — cannot be lifted by any downgrade, example-payload opt-in, or allowlist.
Permissions & capabilities
Requires 5 environment variables. (3 sensitive: BOT_TOKEN, JWT_SECRET, PUSH_TOKEN). Requires 2 system binaries.
Is this flag fair?
Thanks — recorded.