Back to skill

Security audit

今日盘前机会

Security checks for vulnerabilities and agentic risk

Overview

The reporting workflow fits its purpose, but its handling of API keys and unsafe troubleshooting advice warrant review.

Configure your Cue key outside chat and restrict its directory and file permissions to 0700 and 0600. Review and pin the external runner before execution, and keep sandbox protections enabled. Cue processes your queries remotely; enable recurring credit-consuming reports only if wanted.

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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

所提供代码仅执行两条文档转换命令,未体现新闻获取、市场信息分析或关注方向排序。文档转换本身可以是报告生成的辅助步骤,但该代码块未提供任何与所声明金融分析任务的关联,因此就所提供代码而言,其实际用途与声明不符。

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

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

bash
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('暂不可用')"

Session Persistence

Medium
Category
Rogue Agent
Confidence
94% confidence
Finding

Creating a configuration directory is not malicious persistence, but the adjacent command writes an API credential without enforcing restrictive permissions. With a common umask of 022 and a traversable home directory, a newly created config file can be readable by other local users, allowing credential theft and unauthorized consumption of Cue credits.

Content

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

md
#   git clone https://gitee.com/sensedeal/cue-skills ~/.cue/cue-skills

# 2. 写入 API Key(在 https://cuecue.cn/api-key?src=clawhub-pre-market-strategy 创建后复制)
mkdir -p ~/.cue && echo '{"api_key":"sk..."}' > ~/.cue/config.json

# 3. 验证连通(返回 200 即成功)
curl -sS --max-time 10 "https://cuecue.cn/api/templates" \

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

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

md
| 目标格式 | 依赖 | 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` |

---

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

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

md
| 目标格式 | 依赖 | 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` |

---

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
| 环境 | 配置方式 |
|------|---------|
| Claude Code | 用 `CronCreate`,cron 表达式 `0 8 * * 1-5`(自定义时间按用户所选取 分 时 日 月 周) |
| macOS | 建 `~/Library/LaunchAgents/com.cue.pre-market.plist`,`StartCalendarInterval` 设 `Weekday` 1–5、`Hour` 8、`Minute` 0,再 `launchctl load` |
| Linux | `crontab -e` 追加 `0 8 * * 1-5 <上面的命令>` |

配完必须回报三件事:**触发时间、输出目录、如何关掉**(Claude Code 删任务 / `launchctl unload` / `crontab -e` 删除对应行)。

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
| 环境 | 配置方式 |
|------|---------|
| Claude Code | 用 `CronCreate`,cron 表达式 `0 8 * * 1-5`(自定义时间按用户所选取 分 时 日 月 周) |
| macOS | 建 `~/Library/LaunchAgents/com.cue.pre-market.plist`,`StartCalendarInterval` 设 `Weekday` 1–5、`Hour` 8、`Minute` 0,再 `launchctl load` |
| Linux | `crontab -e` 追加 `0 8 * * 1-5 <上面的命令>` |

配完必须回报三件事:**触发时间、输出目录、如何关掉**(Claude Code 删任务 / `launchctl unload` / `crontab -e` 删除对应行)。

Session Persistence

Medium
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
|------|---------|
| Claude Code | 用 `CronCreate`,cron 表达式 `0 8 * * 1-5`(自定义时间按用户所选取 分 时 日 月 周) |
| macOS | 建 `~/Library/LaunchAgents/com.cue.pre-market.plist`,`StartCalendarInterval` 设 `Weekday` 1–5、`Hour` 8、`Minute` 0,再 `launchctl load` |
| Linux | `crontab -e` 追加 `0 8 * * 1-5 <上面的命令>` |

配完必须回报三件事:**触发时间、输出目录、如何关掉**(Claude Code 删任务 / `launchctl unload` / `crontab -e` 删除对应行)。

Session Persistence

Medium
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
| macOS | 建 `~/Library/LaunchAgents/com.cue.pre-market.plist`,`StartCalendarInterval` 设 `Weekday` 1–5、`Hour` 8、`Minute` 0,再 `launchctl load` |
| Linux | `crontab -e` 追加 `0 8 * * 1-5 <上面的命令>` |

配完必须回报三件事:**触发时间、输出目录、如何关掉**(Claude Code 删任务 / `launchctl unload` / `crontab -e` 删除对应行)。

### 必须提前告知的两个坑

Static analysis

No suspicious patterns detected.