安全决策报告

auto-skill-hunter

Skill声明仅需filesystem权限,但代码实际执行了git clone远程执行和spawnSync外部进程调用,存在明显的权限越权行为。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/19
文件 5
IOC 6
越权项 3
发现 6
最直接的威胁证据

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

通过
攻击链与高危发现

没有形成明确的恶意路径。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

风险分是怎么被拉高的

未声明的shell执行权限 +20

claw.json声明filesystem,但代码执行git clone和node --self-test

未声明的外部进程调用 +15

spawnSync调用../../feishu-evolver-wrapper/report.js无权限声明

网络请求超出声明范围 +10

claw.json仅声明filesystem,但代码实际发起HTTP请求获取ClawHub数据

最关键的证据

中危 权限提升

权限声明与实际能力严重不符

claw.json仅声明filesystem权限,但代码执行了git clone远程代码执行、node进程测试、外部脚本调用等多类型高危操作。

claw.json:5
更新claw.json声明完整权限集:filesystem, shell, network, skill_invoke
中危 权限提升

未声明的Git远程克隆执行

installSkill函数使用execSync执行git clone,可从任意repoUrl克隆并执行代码。repoUrl来源于外部API响应。

src/hunt.js:401
1. 添加repoUrl白名单验证;2. 克隆后强制扫描脚本内容;3. 使用受限git clone参数
中危 供应链

外部报告脚本调用未声明

sendHunterReport函数调用外部脚本../../feishu-evolver-wrapper/report.js,该路径在claw.json中完全未声明。

src/hunt.js:760
1. 声明skill_invoke权限;2. 验证外部脚本签名;3. 添加脚本来源审计
中危 文档欺骗

安装策略存在文档-行为差异

SKILL.md描述使用--dry-run安全预览,但实际代码在git clone失败时会降级为scaffold模式自动创建文件,未经用户确认直接写入skills目录。

src/hunt.js:410
明确文档说明降级行为,或在降级时强制要求用户确认
低危 敏感访问

访问会话文件读取用户消息

collectRecentUserMessages读取agents/main/sessions/*.jsonl,可能包含用户敏感对话内容。

src/hunt.js:128
在SKILL.md中明确声明会读取会话历史用于分析用户需求
低危 代码混淆

外部域名硬编码

所有外部请求固定为clawhub.com域名,但未在文档中声明网络依赖。

src/hunt.js:16
在文档中添加网络依赖说明

声明能力 vs 实际能力

文件系统 通过
声明 WRITE
推断 WRITE
claw.json声明permissions:filesystem, src/hunt.js:364-384
命令执行 阻止
声明 NONE
推断 WRITE
git clone in src/hunt.js:401, node --self-test in src/hunt.js:343
网络访问 阻止
声明 NONE
推断 READ
fetchclawhub.com API in src/hunt.js:220-234
技能调用 阻止
声明 NONE
推断 WRITE
spawnSync调用外部report.js in src/hunt.js:760

可疑产物与外联

中危 外部 URL
https://clawhub.com/api/v1/skills/trending?limit=30

src/hunt.js:16

中危 外部 URL
https://clawhub.com/api/v1/skills?sort=trending&limit=30

src/hunt.js:17

中危 外部 URL
https://clawhub.com/api/v1/skills?limit=30

src/hunt.js:18

中危 外部 URL
https://clawhub.com/api/v1/skills/search?q=

src/hunt.js:22

中危 外部 URL
https://clawhub.com/api/v1/skills?q=

src/hunt.js:23

中危 外部 URL
https://clawhub.ai/wanng-ide/memory-mesh-core

src/hunt.js:746

依赖与供应链

包名版本来源漏洞备注
node builtin runtime 使用Node.js内置模块无外部依赖

文件构成

5 个文件 · 1081 行
JavaScript 1 个文件 · 828 行Markdown 2 个文件 · 224 行JSON 2 个文件 · 29 行
需关注文件 · 2
src/hunt.js JavaScript · 828 行
未声明的Git远程克隆执行 · 外部报告脚本调用未声明 · 安装策略存在文档-行为差异 · 访问会话文件读取用户消息 · 外部域名硬编码 · https://clawhub.com/api/v1/skills/trending?limit=30 · https://clawhub.com/api/v1/skills?sort=trending&limit=30 · https://clawhub.com/api/v1/skills?limit=30 · https://clawhub.com/api/v1/skills/search?q= · https://clawhub.com/api/v1/skills?q= · https://clawhub.ai/wanng-ide/memory-mesh-core
claw.json JSON · 12 行
权限声明与实际能力严重不符
其他文件 · README.md · SKILL.md · _meta.json

安全亮点

使用--dry-run模式可安全预览不执行安装
--max-install参数限制安装数量防止批量污染
validateRunnableSkill自检机制降低安装无效技能风险
never overwrite existing skill folders保护现有技能
支持skip已安装技能避免重复