安全决策报告

math-utils

数学计算工具存在命令注入漏洞:expression参数未经验证直接拼接到shell命令中,SKILL.md未警告此风险

安装决策优先 来源: ClawHub 扫描时间: 2026/4/6
文件 2
IOC 0
越权项 0
发现 3
最直接的威胁证据
01
用户提供恶意数学表达式 初始入口 · main.js
02
expression参数未过滤直接拼接入shell命令 权限提升 · main.js
03
注入命令执行(如读取/etc/passwd、反弹shell) 最终危害 · main.js

为什么得出这个结论

1/4 个维度触发
通过
声明与实际能力

声明资源与推断能力基本一致。

通过
隐藏执行与外联

当前没有明显的高危外联或执行信号。

阻止
攻击链与高危发现

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

通过
依赖与供应链卫生

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

攻击链

01
用户提供恶意数学表达式

初始入口 · main.js:18

02
expression参数未过滤直接拼接入shell命令

权限提升 · main.js:24

03
注入命令执行(如读取/etc/passwd、反弹shell)

最终危害 · main.js:24

风险分是怎么被拉高的

命令注入漏洞 +25

expression参数直接插入execSync命令,用户可控输入未过滤

文档未声明安全风险 +15

SKILL.md称'100%准确计算',未提及命令注入风险

shell:WRITE权限声明宽泛 +10

未说明为何需要执行系统命令及边界

最关键的证据

高危 代码执行

命令注入漏洞

calculate()函数的expression参数未经过滤直接拼接到shell命令中。攻击者可通过传入表达式如'; cat /etc/passwd |'或'$(whoami)'执行任意系统命令

main.js:24
实现输入白名单验证:仅允许[0-9+\-*/().]字符,拒绝任何shell特殊字符
中危 文档欺骗

安全风险未声明

SKILL.md声称'100%准确性'但未警告命令注入风险,用户无法意识到传入恶意表达式的后果

SKILL.md:6
在文档中添加安全警告,说明expression参数的信任边界
低危 供应链

无第三方依赖锁定

仅使用Node.js内置模块,无外部依赖风险

main.js:1
无需操作

声明能力 vs 实际能力

命令执行 通过
声明 WRITE
推断 WRITE
main.js:24 execSync调用
文件系统 通过
声明 READ
推断 READ
仅Node.js标准模块加载

可疑产物与外联

没有提取到明显 IOC。

依赖与供应链

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

文件构成

2 个文件 · 65 行
JavaScript 1 个文件 · 47 行Markdown 1 个文件 · 18 行
需关注文件 · 2
main.js JavaScript · 47 行
命令注入漏洞 · 无第三方依赖锁定
SKILL.md Markdown · 18 行
安全风险未声明

安全亮点

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