Back to skill

Security audit

虾盘云音乐 · 一句话出歌

Security checks for vulnerabilities and agentic risk

Overview

The music workflow fits its purpose, but its instructions permit exposing your full API key in recharge links.

Remove the instruction permitting API keys in recharge links before enabling the skill. Use credential-free recharge links and a dedicated, spending-limited API key supplied through the environment. Rotate any key already shared in a URL. Prompts and lyrics go to external services, lyric drafting may incur a small charge, and cards remain cached locally. Confirm each audio purchase and check existing tasks or billing before rerunning interrupted commands. Provider retention and live billing behavior remain unverified.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (48)

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · README.md (reported line 31)May include surrounding context.

md
## 配置 Key(三选一)

1. 环境变量:`export XIAPAN_API_KEY="sk-..."`
2. DSH 插件用户:在 `~/.dsh/.credentials.yaml` 的 `refs` 下配置 `XIAPAN_API_KEY`(插件自动注入)
3. 装了 U-King 的电脑:自动读 `~/.uking/device.json`,零配置

还没有 Key?到 **https://api.u-claw.org.cn** 注册 → 创建 Key;充值:**https://api.u-claw.org.cn/recharge**(支持 `?key=` 自动填入)。

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 28)May include surrounding context.

md
- 「写歌」「创作歌曲」「文字生成歌曲」「把歌词唱出来」→ 完整歌曲(`song.mjs`)。

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 37)May include surrounding context.

md
rse]/[Chorus]` 结构标签的完整歌词**放进 prompt 才出 2 分钟整歌。所以:用户只给主题/描述 → 先用 `lyrics.mjs`(或 `song.mjs` 出卡阶段)写成完整歌词;只有用户显式给了歌词才直接用。

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 60)May include surrounding context.

md
node scripts/song.mjs --theme "写给深夜加班后独自走回家的人,温暖治愈的中文民谣" --json

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 68)May include surrounding context.

md
node scripts/song.mjs --theme "同一条主题" --confirm --json

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 69)May include surrounding context.

md
# 或:node scripts/song.mjs --lyrics-json ./card.json --confirm --json

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 74)May include surrounding context.

md
5. **崩溃/断线恢复**:如果提交后等待中断,用 `node scripts/song.mjs --resume-task <taskId> --json` **只续查和下载,绝不重新提交**。

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 83)May include surrounding context.

md
node scripts/song.mjs --lyrics-file ./lyrics.txt --title "歌名" \

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 108)May include surrounding context.

md
| `song.mjs` | 完整歌曲 | `--theme`(别名`--prompt`) / `--style`(别名`--tags`) / `--title` / `--lyrics` / `--lyrics-file` / `--lyrics-json` / `--mv` / `--out-dir` / `--c

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 118)May include surrounding context.

md
- 成功 JSON 关键字段:`song.mjs` → `{ok, taskId, title, tags, model, mv, costHint, songs:[{file,bytes,title,duration,clipId,imageUrl,audioUrl}], nextSteps}`;`bgm.mjs`

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 29)May include surrounding context.

md
- 「纯音乐」「BGM」「伴奏」「无人声」「背景乐」→ 纯音乐(`bgm.mjs`),不要用完整歌曲接口代替。

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 90)May include surrounding context.

md
node scripts/bgm.mjs --prompt "轻快温馨的钢琴曲,适合短视频结尾,明亮治愈,不抢人声" --json # 出卡,不扣费

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 91)May include surrounding context.

md
node scripts/bgm.mjs --prompt "同上" --confirm --json # 确认后生成(约 ¥1/首)

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 109)May include surrounding context.

md
| `bgm.mjs` | 纯音乐/BGM | `--prompt` / `--model`(默认 minimax-music-v2.6) / `--out <file>` / `--confirm` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 118)May include surrounding context.

md
int, songs:[{file,bytes,title,duration,clipId,imageUrl,audioUrl}], nextSteps}`;`bgm.mjs` → `{ok, taskId, model, file, bytes, costHint, nextSteps}`;`lyrics.mjs`

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 31)May include surrounding context.

md
- 只想要歌名和歌词、不要音频 → `lyrics.mjs`(免费)。

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 37)May include surrounding context.

md
clip;把**带 `[Verse]/[Chorus]` 结构标签的完整歌词**放进 prompt 才出 2 分钟整歌。所以:用户只给主题/描述 → 先用 `lyrics.mjs`(或 `song.mjs` 出卡阶段)写成完整歌词;只有用户显式给了歌词才直接用。

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 63)May include surrounding context.

md
tags,lyrics,...}}`——**这是正常的两段式,不是失败**。把 `card` 里的歌名、风格、完整歌词、成本展示给用户。也可以先单独跑 `lyrics.mjs` 让用户改词。

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 99)May include surrounding context.

md
node scripts/lyrics.mjs --theme "毕业那天的不舍" --style "中文民谣,温暖男声" --json

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 100)May include surrounding context.

md
node scripts/lyrics.mjs --theme "..." --out ./card.json --json # 写卡文件,供 song.mjs --lyrics-json

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 110)May include surrounding context.

md
| `lyrics.mjs` | 只写词(免费) | `--theme` / `--style` / `--title` / `--language zh\|en\|ja` / `--out <file>` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 118)May include surrounding context.

md
extSteps}`;`bgm.mjs` → `{ok, taskId, model, file, bytes, costHint, nextSteps}`;`lyrics.mjs` → `{ok, title, tags, lyrics, model, costHint}`;`balance.mjs` → `{ok,

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 149)May include surrounding context.

md
- 完全不想付费:可以只用 `lyrics.mjs` 帮用户写歌词(约 ¥0.01),并说明出歌是付费能力。

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 48)May include surrounding context.

md
1. `--key sk-...`(显式传入,最不推荐放在命令行历史里)
2. 环境变量 `XIAPAN_API_KEY`
   - **装 DSH 插件(dsh-xiapan-music)的用户**:在 `~/.dsh/.credentials.yaml` 的 `refs` 下配置 `XIAPAN_API_KEY`,插件会自动以环境变量注入,脚本无需读 yaml。
   - 或者直接 `export XIAPAN_API_KEY="sk-..."`
3. `~/.uking/device.json` 的 `key` 字段(装了 U-King 的电脑零配置可用)

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/lib/xiapan-music.mjs (reported line 111)May include surrounding context.

js
}

// ---------------------------------------------------------------------------
// Key 解析:--key > XIAPAN_API_KEY > ~/.dsh/.credentials.yaml 的 refs(由 DSH 插件注入为环境变量)
//            > ~/.uking/device.json 的 key
// ---------------------------------------------------------------------------