可疑 — 风险评分 50/100
上次扫描:4 小时前 重新扫描
50 /100
math-utils
基于本地CLI工具的数学计算技能
数学计算工具存在命令注入漏洞:expression参数未经验证直接拼接到shell命令中,SKILL.md未警告此风险
技能名称math-utils
分析耗时46.3s
引擎pi
ClawHub Math Utils Native v1.0.1 by johnnyhou327
📥 295 📦 1
ClawHub 判定 可疑 dangerous_execllm_suspiciousvt_suspicious
谨慎使用
必须对expression参数进行严格白名单验证(仅允许数字、括号、运算符),或改用安全计算库(如math.js)替代CLI调用

攻击链 3 步

入口 用户提供恶意数学表达式
main.js:18
提权 expression参数未过滤直接拼接入shell命令
main.js:24
影响 注入命令执行(如读取/etc/passwd、反弹shell)
main.js:24

安全发现 3 项

严重性 安全发现 位置
高危
命令注入漏洞 代码执行
calculate()函数的expression参数未经过滤直接拼接到shell命令中。攻击者可通过传入表达式如'; cat /etc/passwd |'或'$(whoami)'执行任意系统命令
result = execSync(`echo "scale=10; ${expression}" | bc`, { encoding: 'utf-8' })
→ 实现输入白名单验证:仅允许[0-9+\-*/().]字符,拒绝任何shell特殊字符
main.js:24
中危
安全风险未声明 文档欺骗
SKILL.md声称'100%准确性'但未警告命令注入风险,用户无法意识到传入恶意表达式的后果
确保计算的 100% 准确性
→ 在文档中添加安全警告,说明expression参数的信任边界
SKILL.md:6
低危
无第三方依赖锁定 供应链
仅使用Node.js内置模块,无外部依赖风险
const { execSync } = require('child_process');
→ 无需操作
main.js:1
资源类型声明权限推断权限状态证据
命令执行 WRITE WRITE ✓ 一致 main.js:24 execSync调用
文件系统 READ READ ✓ 一致 仅Node.js标准模块加载

目录结构

2 文件 · 2.4 KB · 65 行
JavaScript 1f · 47L Markdown 1f · 18L
├─ 📜 main.js JavaScript 47L · 1.5 KB
└─ 📝 SKILL.md Markdown 18L · 880 B

依赖分析 1 项

包名版本来源已知漏洞备注
Node.js内置模块 N/A 标准库 仅用child_process和os模块

安全亮点

✓ 代码简洁,仅约50行,易于审查
✓ 仅使用Node.js内置模块,无第三方依赖
✓ 实现了跨平台支持(Linux/macOS/Windows)
✓ 包含备选方案提高鲁棒性