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 innerText from [role=log][aria-label="Conversation transcript"] in scripts/sidebar.mjs and via agent-browser eval snippets in SKILL.md.
  • Boundary markers: The skill defines a strict messaging protocol using headers like [w:<sid8>] ⟨Claude⟩ #task to distinguish agent messages from human owner messages.
  • Capability inventory: The skill can execute shell commands (pkill, open), perform file system writes (scripts/send.mjs marks sent messages in ~/.claude/grok-bot-watch/sent), and perform browser automation.
  • Sanitization: The scripts/send.mjs script uses JSON.stringify to escape message content before interpolating it into JavaScript snippets for Runtime.evaluate.
  • [COMMAND_EXECUTION]: The skill uses shell commands to manage the Grok Bot application process.
  • Evidence: scripts/ensure.mjs and SKILL.md use pkill -x "Grok Bot" to terminate the app and open -a "Grok Bot" --args --remote-debugging-port=39231 to 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.mjs assembles complex JS strings (e.g., the SUBMIT constant) that are executed via Runtime.evaluate. It uses JSON.stringify for 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
Risk Level
SAFE
Analyzed
Oct 15, 2026, 08:42 AM