安全决策报告

polish

代码审查技能存在 Phase 1 命令注入风险和文档-权限声明不符:声称移除 allowed-tools 但仍可执行任意 shell 命令,review mode 下 agent 可能越权访问文件系统。

安装决策优先 来源: ClawHub 扫描时间: 1 天前
文件 10
IOC 5
越权项 4
发现 4
最直接的威胁证据
高危 代码执行
Phase 1 命令执行未受限

技能执行 CLAUDE.md 中声明的验证命令(lint/typecheck),攻击者可通过 PR 修改 CLAUDE.md 注入恶意命令(如 curl|bash 管道),在 CI 环境中可造成 RCE。

SKILL.md:42

为什么得出这个结论

2/4 个维度触发
阻止
声明与实际能力

发现 4 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 5 个一般风险产物,需要结合上下文判断。

阻止
攻击链与高危发现

报告包含 0 步攻击链,另有 1 项高危或严重发现。

复核
依赖与供应链卫生

没有完整依赖信息,供应链判断需要保留弹性。

风险分是怎么被拉高的

Phase 1 命令注入风险 +20

执行 CLAUDE.md 中的验证命令无法限制恶意代码执行(如 'curl|bash' 链)

文档-权限声明不符 +15

CHANGELOG 声称移除 allowed-tools 但 skill 实际仍拥有 shell:WRITE 全权

Agent 隔离不足 +10

并行 agent 可读取代码库中的敏感信息(密钥、token)

最关键的证据

高危 代码执行

Phase 1 命令执行未受限

技能执行 CLAUDE.md 中声明的验证命令(lint/typecheck),攻击者可通过 PR 修改 CLAUDE.md 注入恶意命令(如 curl|bash 管道),在 CI 环境中可造成 RCE。

SKILL.md:42
添加 Phase 1 命令白名单,限制可执行的命令模式(如 pnpm check, npm run lint),禁止管道和多命令执行
中危 文档欺骗

CHANGELOG 声称移除 allowed-tools 但实际无限制

CHANGELOG 2.6.2 记录移除了 allowed-tools 字段,声称 'It existed only to keep that block from prompting',但 SKILL.md 全文未声明任何 allowed-tools 限制,模型可执行任意 shell 命令。

CHANGELOG.md:62
在 SKILL.md 明确声明技能所需的权限范围和禁止的操作
中危 凭证窃取

Agent 可读取代码库中的敏感信息

Phase 3 并行启动的 4 个 agent 需要读取 diff 和代码文件,若代码库包含 .env、AWS 凭证、API keys 等敏感信息,agent 可能无意中处理这些数据。

SKILL.md:85
在 agent 提示词中添加明确的敏感信息处理规则,禁止在 findings 中暴露凭证值
低危 权限提升

Fix mode 可修改用户代码库

Fix mode 在 Phase 6 执行代码修复,若误用于外部 PR 可能造成未授权代码修改。虽然 review mode 设计了保护,但用户可能混淆模式选择。

SKILL.md:10
增强模式选择的明确性,外部 PR 默认 review mode 并禁止覆盖

声明能力 vs 实际能力

文件系统 阻止
声明 NONE
推断 WRITE
SKILL.md:0 - 无 allowed-tools 声明但 Phase 6 执行文件写入
命令执行 阻止
声明 NONE
推断 WRITE
SKILL.md:Phase 1 - 执行 CLAUDE.md 中的任意命令
网络访问 阻止
声明 NONE
推断 READ
SKILL.md:Setup - 使用 gh 与 GitHub API 交互
技能调用 阻止
声明 NONE
推断 ADMIN
SKILL.md:Phase 3 - 并行启动 4 个子 agent

可疑产物与外联

中危 外部 URL
https://keepachangelog.com/en/2.0.0/

CHANGELOG.md:5

中危 外部 URL
https://semver.org/spec/v2.0.0.html

CHANGELOG.md:6

中危 外部 URL
https://www.apache.org/licenses/

LICENSE.txt:3

中危 外部 URL
https://clawhub.ai/user/tenequm

skill-card.md:9

中危 外部 URL
https://clawhub.ai/tenequm/skills/code-polish

skill-card.md:35

依赖与供应链

没有结构化依赖告警。

文件构成

10 个文件 · 1195 行
Shell 5 个文件 · 487 行Markdown 3 个文件 · 474 行Text 1 个文件 · 162 行JSON 1 个文件 · 72 行
需关注文件 · 4
SKILL.md Markdown · 283 行
Phase 1 命令执行未受限 · Agent 可读取代码库中的敏感信息 · Fix mode 可修改用户代码库
LICENSE.txt Text · 162 行
https://www.apache.org/licenses/
CHANGELOG.md Markdown · 136 行
CHANGELOG 声称移除 allowed-tools 但实际无限制 · https://keepachangelog.com/en/2.0.0/ · https://semver.org/spec/v2.0.0.html
skill-card.md Markdown · 55 行
https://clawhub.ai/user/tenequm · https://clawhub.ai/tenequm/skills/code-polish
其他文件 · evals.json · setup.sh · setup.sh · setup.sh · setup.sh · setup.sh

安全亮点

设计了 review mode 保护机制(外部 PR 不可编辑)
Phase 4 验证 findings 防止误报
Phase 5 需要用户批准才执行修复
diff 被标记为 untrusted data,agent 不会直接执行其中指令
包含丰富的安全相关 CHANGELOG 记录
evals 覆盖多种攻击场景