The “no shell-injection surface” assurance fails when user text is inserted into a shell command
Source references: 3The Skill puts prompts inside single-quoted JSON in a shell command while claiming that backticks, quotes, and `$(...)` cannot be expanded. The shell parses the full command before the CLI starts. If an agent directly inserts a user prompt containing a single quote, it can terminate the JSON quoting and expose following text to shell interpretation. Static examples do not establish that dynamic construction is safe.
A malicious or accidentally crafted prompt could execute additional commands with the user's privileges, potentially accessing credentials, reading or changing files, or initiating network operations.
The risk applies if an agent dynamically inserts user text into the examples' single-quoted JSON: an unescaped apostrophe is parsed by the shell before the CLI starts and can terminate the argument. The CLI's own non-expansion does not protect this earlier parsing stage, and no safe serialization mechanism is shown. Users can require argument-array or input-file handling instead of shell-string concatenation.
# 3. Generateruncomfy run <vendor>/<model>/<endpoint> \ --input '{"prompt": "..."}' \ --output-dir ./out```Show 2 other places
- **Token storage**: `runcomfy login` writes the API token to `~/.config/runcomfy/token.json` with mode 0600. Set `RUNCOMFY_TOKEN` env var to bypass the file in CI / containers. Never echo the token into a prompt, log it, or check it in.- **Input boundary (shell injection)**: prompts are passed as a JSON string via `--input`. The CLI does not shell-expand prompt content; it transmits the JSON body directly to the Model API over HTTPS. **No shell-injection surface from prompt content**, even with backticks, quotes, or `$(...)` patterns.- **Indirect prompt injection (third-party content)**: reference image URLs and `enable_web_search` results are **untrusted**. They are fetched by the RunComfy model server and can influence generation through embedded instructions (text painted into an image, EXIF strings, web-grounded steering). Agent mitigations:The skill classifies the user request into one of the t2i or i2i routes above and invokes `runcomfy run <model_id>` with the matching JSON body. The CLI POSTs to the RunComfy Model API, polls request status, fetches the result, and downloads any `.runcomfy.net` / `.runcomfy.com` URLs into `--output-dir`. `Ctrl-C` cancels the remote request before exit.