安全决策报告
cmd-execution-test
发现文档-行为不一致:SKILL.md 仅声明预定义诊断命令,但代码实际支持 --cmd 参数执行任意shell命令,存在未声明的高危能力
最直接的威胁证据
01
用户查看 SKILL.md 了解工具功能 初始入口 · SKILL.md
02
攻击者利用未文档化的 --cmd 参数执行恶意命令 权限提升 · cmd-executor.mjs
03
通过 execSync 执行任意shell命令完成系统入侵 最终危害 · cmd-executor.mjs
为什么得出这个结论
3/4 个维度触发 阻止
声明与实际能力
发现 1 项声明之外的能力或越权行为。
阻止
隐藏执行与外联
提取到 1 个高危 IOC 或外联信号。
阻止
攻击链与高危发现
报告包含 3 步攻击链,另有 0 项高危或严重发现。
复核
依赖与供应链卫生
没有完整依赖信息,供应链判断需要保留弹性。
攻击链
01
用户查看 SKILL.md 了解工具功能
初始入口 · SKILL.md:1
02
攻击者利用未文档化的 --cmd 参数执行恶意命令
权限提升 · cmd-executor.mjs:22
03
通过 execSync 执行任意shell命令完成系统入侵
最终危害 · cmd-executor.mjs:50
风险分是怎么被拉高的
未声明的任意命令执行能力 +25
SKILL.md 仅描述 --type 参数的预定义命令集,但代码支持 --cmd 执行任意shell命令,这是典型的阴影功能
execSync 缺乏输入验证 +10
代码使用 execSync 直接执行命令,无任何命令白名单或过滤机制
最关键的证据
中危 文档欺骗
未声明的 --cmd 自定义命令执行能力
SKILL.md 文档仅描述了 --type 参数支持的 systeminfo/network/filesystem 预定义命令集,但代码第22行支持 --cmd 参数允许执行任意shell命令,这是典型的文档-行为不一致(阴影功能)
cmd-executor.mjs:22 如 --cmd 功能非必需应移除;如需保留必须在 SKILL.md 中明确声明,并添加命令白名单过滤机制
低危 供应链
硬编码第三方IP地址
代码第98行硬编码 8.8.8.8 (Google DNS) 用于网络测试,这是标准DNS服务器但缺乏灵活性
cmd-executor.mjs:98 考虑从配置读取或使用环境变量,便于用户自定义
声明能力 vs 实际能力
命令执行 阻止
声明 READ
→ 推断 WRITE
cmd-executor.mjs:50 代码使用 execSync 执行任意命令 网络访问 通过
声明 READ
→ 推断 READ
cmd-executor.mjs:98-105 使用 ping/traceroute/nslookup 进行网络诊断,符合文档声明 文件系统 通过
声明 READ
→ 推断 READ
cmd-executor.mjs:107-112 使用 dir/ls/tree 列出目录,符合文档声明 可疑产物与外联
高危 IP 地址
8.8.8.8 cmd-executor.mjs:98
中危 外部 URL
https://clawhub.ai/user/qiqi704 skill-card.md:7
中危 外部 URL
https://clawhub.ai/qiqi704/cs1111 skill-card.md:27
依赖与供应链
没有结构化依赖告警。
文件构成
5 个文件 · 689 行
JavaScript 1 个文件 · 260 行Markdown 2 个文件 · 249 行JSON 2 个文件 · 180 行
需关注文件 · 2
cmd-executor.mjs 未声明的 --cmd 自定义命令执行能力 · 硬编码第三方IP地址 · 8.8.8.8
skill-card.md https://clawhub.ai/user/qiqi704 · https://clawhub.ai/qiqi704/cs1111
其他文件 · SKILL.md · test-commands.json · _meta.json
安全亮点
使用Node.js内置模块,无外部依赖风险
预定义的诊断命令集合理且用途明确
包含命令超时机制(maxOutputLength截断)
支持JSON和Markdown双格式输出
跨平台支持(Windows/Linux/macOS)