auto-skill-hunter
Skill声明仅需filesystem权限,但代码实际执行了git clone远程执行和spawnSync外部进程调用,存在明显的权限越权行为。
为什么得出这个结论
1/4 个维度触发发现 3 项声明之外的能力或越权行为。
提取到 6 个一般风险产物,需要结合上下文判断。
没有形成明确的恶意路径。
依赖结构存在,但暂未看到明显高危告警。
风险分是怎么被拉高的
claw.json声明filesystem,但代码执行git clone和node --self-test
spawnSync调用../../feishu-evolver-wrapper/report.js无权限声明
claw.json仅声明filesystem,但代码实际发起HTTP请求获取ClawHub数据
最关键的证据
权限声明与实际能力严重不符
claw.json仅声明filesystem权限,但代码执行了git clone远程代码执行、node进程测试、外部脚本调用等多类型高危操作。
claw.json:5 未声明的Git远程克隆执行
installSkill函数使用execSync执行git clone,可从任意repoUrl克隆并执行代码。repoUrl来源于外部API响应。
src/hunt.js:401 外部报告脚本调用未声明
sendHunterReport函数调用外部脚本../../feishu-evolver-wrapper/report.js,该路径在claw.json中完全未声明。
src/hunt.js:760 安装策略存在文档-行为差异
SKILL.md描述使用--dry-run安全预览,但实际代码在git clone失败时会降级为scaffold模式自动创建文件,未经用户确认直接写入skills目录。
src/hunt.js:410 访问会话文件读取用户消息
collectRecentUserMessages读取agents/main/sessions/*.jsonl,可能包含用户敏感对话内容。
src/hunt.js:128 外部域名硬编码
所有外部请求固定为clawhub.com域名,但未在文档中声明网络依赖。
src/hunt.js:16 声明能力 vs 实际能力
claw.json声明permissions:filesystem, src/hunt.js:364-384 git clone in src/hunt.js:401, node --self-test in src/hunt.js:343 fetchclawhub.com API in src/hunt.js:220-234 spawnSync调用外部report.js in src/hunt.js:760 可疑产物与外联
https://clawhub.com/api/v1/skills/trending?limit=30 src/hunt.js:16
https://clawhub.com/api/v1/skills?sort=trending&limit=30 src/hunt.js:17
https://clawhub.com/api/v1/skills?limit=30 src/hunt.js:18
https://clawhub.com/api/v1/skills/search?q= src/hunt.js:22
https://clawhub.com/api/v1/skills?q= src/hunt.js:23
https://clawhub.ai/wanng-ide/memory-mesh-core src/hunt.js:746
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| node | builtin | runtime | 否 | 使用Node.js内置模块无外部依赖 |
文件构成
src/hunt.js claw.json