using-grok-bot-app
Pass
Audited by Gen Agent Trust Hub on Oct 15, 2026
Risk Level: SAFEINDIRECT_PROMPT_INJECTIONCOMMAND_EXECUTIONDYNAMIC_EXECUTION
Full Analysis
- [INDIRECT_PROMPT_INJECTION]: The skill ingests conversation transcripts from the Grok Bot application DOM, creating a surface for potential indirect prompt injection attacks where malicious instructions could be embedded in bot messages.
- Ingestion points: The skill reads
innerTextfrom[role=log][aria-label="Conversation transcript"]inscripts/sidebar.mjsand viaagent-browser evalsnippets inSKILL.md. - Boundary markers: The skill defines a strict messaging protocol using headers like
[w:<sid8>] ⟨Claude⟩ #taskto distinguish agent messages from human owner messages. - Capability inventory: The skill can execute shell commands (
pkill,open), perform file system writes (scripts/send.mjsmarks sent messages in~/.claude/grok-bot-watch/sent), and perform browser automation. - Sanitization: The
scripts/send.mjsscript usesJSON.stringifyto escape message content before interpolating it into JavaScript snippets forRuntime.evaluate. - [COMMAND_EXECUTION]: The skill uses shell commands to manage the Grok Bot application process.
- Evidence:
scripts/ensure.mjsandSKILL.mdusepkill -x "Grok Bot"to terminate the app andopen -a "Grok Bot" --args --remote-debugging-port=39231to relaunch it with debugging enabled. These are intended for desktop automation and operate within the scope of the target application. - [DYNAMIC_EXECUTION]: The skill generates and executes JavaScript snippets within the Grok Bot Electron application renderer using the Chrome DevTools Protocol (CDP).
- Evidence:
scripts/send.mjsassembles complex JS strings (e.g., theSUBMITconstant) that are executed viaRuntime.evaluate. It usesJSON.stringifyfor user-supplied message text to mitigate injection risks during this process. - [OBFUSCATION]: A static analysis hint flagged potential Unicode steganography in
scripts/send.test.mjs. - Evidence: The file contains a test case string:
const text = "it's \x` ${globalThis.pwned = 1} \ \u2028 "q"". The\u2028` (Line Separator) is used here in a security test to ensure the script handles hostile or unusual characters correctly without executing them. This is a benign use of special characters for testing purposes.
Audit Metadata