示例的单引号命令包装与“任何引号都不会注入”的保证不相符
原文依据:4 处示例把整个 JSON 放进 shell 单引号。若代理直接把用户歌词插入该位置,歌词中的单引号会先被 shell 解析,CLI 所谓“不展开提示词”并不能保护 shell 层。文档却明确声称连引号和 `$(...)` 都没有注入面。
恶意或意外构造的歌词可能截断参数并让本机执行额外 shell 命令,从而读取或修改用户可访问的数据。
调用示例用 shell 单引号包住 JSON,而技能面向用户提供的歌词和提示词。若代理通过字符串拼接把含 `'` 的内容直接放入该模板,单引号会在 CLI 收到 JSON 前终止,后续文本可能被 shell 解释。第176行的绝对保证只描述 CLI 收到内容后的行为,不能证明这种 shell 构造安全。用户可要求使用参数数组、临时 JSON 文件或可靠的 JSON/shell 转义。
```bashruncomfy run elevenlabs/elevenlabs/music-generation \ --input '{ "prompt": "Upbeat indie-pop anthem, bright electric guitars, driving drums, 120 BPM, female lead vocal. [Intro 8 bars] instrumental build. [Verse] Chalk on the palms, laces double-knotted, morning on the ridge. [Chorus] We rise, we strike, we never fade out. [Bridge] soft breakdown, just piano and voice. [Outro] full band, fade.", "music_length_ms": 60000 }' \ --output-dir ./out```查看另外 3 个位置
- **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)**: the prompt is 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.- **Lyrics provenance**: if the user supplies lyrics, confirm they have the rights to them. Generating music around copyrighted lyrics is the operator's responsibility — the skill does not check.```bashruncomfy run elevenlabs/elevenlabs/music-generation \ --input '{ "prompt": "Upbeat indie-pop anthem, bright electric guitars, driving drums, 120 BPM, female lead vocal. [Intro 8 bars] instrumental build. [Verse] Chalk on the palms, laces double-knotted, morning on the ridge. [Chorus] We rise, we strike, we never fade out. [Bridge] soft breakdown, just piano and voice. [Outro] full band, fade.", "music_length_ms": 60000 }' \ --output-dir ./out```ElevenLabs Music reads **one `prompt` field** that carries both the style brief and the lyrics. Structure it well: