Description-Behavior Mismatch
- Category
- MCP Tool Poisoning
- Confidence
- 94% confidence
- Finding
文档转换可以作为尽调报告输出的辅助步骤,本身并非不相关或危险行为。但所提供代码的全部行为只是转换已有 Markdown 文件,没有调用 Cue、获取企业数据或生成尽调分析。因此,就该代码块而言,其实际主要用途与声明的企业尽调分析用途存在实质差异。未发现额外的网络访问或其他未声明资源访问行为。
- Content
Security audit
Security checks for vulnerabilities and agentic risk
The research workflow fits its purpose, but its instructions expose your API key through chat while misleadingly claiming the agent cannot view it.
Configure your key locally outside chat and restrict access to its configuration file. If you already pasted it into chat, replace it. Review and pin the runner before execution, and expect research queries to reach Cue and consume credits.
文档转换可以作为尽调报告输出的辅助步骤,本身并非不相关或危险行为。但所提供代码的全部行为只是转换已有 Markdown 文件,没有调用 Cue、获取企业数据或生成尽调分析。因此,就该代码块而言,其实际主要用途与声明的企业尽调分析用途存在实质差异。未发现额外的网络访问或其他未声明资源访问行为。
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
CUE_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.cue/config.json'))['api_key'])" 2>/dev/null || echo "$CUE_API_KEY") echo "=== 1/3 API Key ===" && [ -n "$CUE_KEY" ] && echo "已配置" || echo "未配置!" echo "=== 2/3 Cue 服务 ===" && curl -sS --max-time 10 "https://cuecue.cn/api/health" -H "Authorization: Bearer $CUE_KEY" echo "=== 3/3 搭子 ===" && curl -sS --max-time 10 "https://cuecue.cn/api/playbook" -H "Authorization: Bearer $CUE_KEY" | python3 -c "import sys,json;scenes=json.load(sys.stdin).get('data',{}).get('scenes',[]);buddy=[b for s in scenes if s.get('secondary_category')=='信贷尽调' for b in s.get('buddies',[]) if b.get('title')=='企业全景画像'];print(f'可用:{len(buddy)}个') if buddy else print('暂不可用')"
| 检查 | 预期 | 异常处理 |
The skill repeatedly instructs users to paste an API key into ordinary agent chat, unnecessarily placing a reusable credential in conversation history and potentially in model inputs, logs, and integrations. Anyone who subsequently obtains that credential could use its granted permissions or consume the user's Cue credits; the instruction that the agent cannot view the key does not prevent this exposure.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
| 目标格式 | 依赖 | macOS | Ubuntu |
|----------|------|-------|--------|
| Word (.docx) | pandoc | `brew install pandoc` | `sudo apt install pandoc` |
| PDF (.pdf) | pandoc + LaTeX | `brew install --cask basictex` | `sudo apt install texlive-xetex` |
---
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
| 目标格式 | 依赖 | macOS | Ubuntu |
|----------|------|-------|--------|
| Word (.docx) | pandoc | `brew install pandoc` | `sudo apt install pandoc` |
| PDF (.pdf) | pandoc + LaTeX | `brew install --cask basictex` | `sudo apt install texlive-xetex` |
---
L113, L165, and L184 explicitly state that the agent has no authority to view the user's API key. However, L176 extracts the plaintext key from ~/.cue/config.json or CUE_API_KEY into an agent-executed shell variable, and L178–L179 use it for authentication. Authentication is expected for this skill, but the stated credential-access restriction contradicts the supplied implementation.
No suspicious patterns detected.