安全决策报告

grok-swarm

cli.py实现了未在SKILL.md中声明的--execute参数,允许执行任意shell命令,构成明确的代码执行风险。

安装决策优先 来源: 手动上传 扫描时间: 2026/4/5
文件 7
IOC 1
越权项 3
发现 5
最直接的威胁证据
01
用户通过SKILL.md了解工具,误认为只是代码生成 初始入口 · SKILL.md
02
攻击者利用未声明的--execute参数执行任意命令 权限提升 · bridge/cli.py
03
反弹shell或数据窃取 最终危害 · N/A

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

阻止
攻击链与高危发现

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

复核
依赖与供应链卫生

发现 1 项需要关注的依赖或供应链线索。

攻击链

01
用户通过SKILL.md了解工具,误认为只是代码生成

初始入口 · SKILL.md:1

02
攻击者利用未声明的--execute参数执行任意命令

权限提升 · bridge/cli.py:229

03
反弹shell或数据窃取

最终危害 · N/A

风险分是怎么被拉高的

未声明的shell执行能力 +35

cli.py的--execute参数允许执行任意shell命令,完全未在SKILL.md中声明

凭证读取 +15

grok_bridge.py读取多个位置的API密钥:环境变量、~/.config/grok-swarm/config.json、~/.openclaw/*/auth-profiles.json

外部API通信 +10

连接https://openrouter.ai/api/v1,存在数据外泄的理论风险

依赖无版本锁定 +5

install.sh使用pip install openai>=1.0.0,未锁定具体版本

最关键的证据

高危 文档欺骗

未声明的shell执行功能

cli.py实现了--execute参数,允许执行任意shell命令。这是SKILL.md中完全未提及的影子功能,用户在不知情的情况下可能触发恶意命令执行。

bridge/cli.py:229
删除--execute参数,或在SKILL.md中明确声明该功能为可选能力并添加警告说明。
高危 代码执行

任意命令执行风险

通过--execute参数,攻击者可以执行任意shell命令,包括反弹shell、下载恶意脚本等。

bridge/cli.py:229
如果需要保留该功能,应使用严格的命令白名单而非直接执行用户输入。
中危 凭证窃取

多处读取API凭证

get_api_key()函数从多个位置读取API密钥:环境变量(OPENROUTER_API_KEY, XAI_API_KEY)、配置文件(~/.config/grok-swarm/config.json)、OpenClaw认证文件(~/.openclaw/*/auth-profiles.json)。这些凭证最终用于连接外部API,理论上存在外泄风险。

bridge/grok_bridge.py:62
确认凭证仅用于OpenRouter API调用,添加代码审计。建议使用专门的密钥管理服务。
中危 文档欺骗

网络通信未声明

SKILL.md未提及该技能会连接外部API(https://openrouter.ai/api/v1)进行通信。用户应知情数据会被发送到第三方。

bridge/grok_bridge.py:29
在SKILL.md中明确声明需要网络访问和外部API调用。
低危 供应链

依赖无版本锁定

install.sh中使用pip install openai>=1.0.0,未锁定具体版本,可能安装到存在漏洞的版本。

install.sh:51
锁定具体版本,如openai==1.58.0

声明能力 vs 实际能力

命令执行 阻止
声明 NONE
推断 WRITE
bridge/cli.py:229-237 subprocess.run(args.execute, shell=True)
环境变量 阻止
声明 NONE
推断 READ
bridge/grok_bridge.py:74-75 os.environ.get(OPENROUTER_API_KEY)
文件系统 通过
声明 WRITE
推断 WRITE
SKILL.md声明File Writing能力,apply.py实现
网络访问 阻止
声明 NONE
推断 READ
bridge/grok_bridge.py:29 OpenRouter API调用

可疑产物与外联

中危 外部 URL
https://openrouter.ai/api/v1

bridge/grok_bridge.py:29

依赖与供应链

包名版本来源漏洞备注
openai >=1.0.0 pip 无版本锁定,存在供应链风险

文件构成

7 个文件 · 1255 行
Python 3 个文件 · 851 行JavaScript 1 个文件 · 204 行Markdown 1 个文件 · 89 行Shell 1 个文件 · 84 行JSON 1 个文件 · 27 行
需关注文件 · 3
bridge/grok_bridge.py Python · 392 行
多处读取API凭证 · 网络通信未声明 · https://openrouter.ai/api/v1
bridge/cli.py Python · 269 行
未声明的shell执行功能 · 任意命令执行风险
install.sh Shell · 84 行
依赖无版本锁定
其他文件 · apply.py · index.js · SKILL.md · openclaw.plugin.json

安全亮点

apply.py实现了路径遍历保护(_safe_dest函数)
文件写入有dry-run模式(默认),防止意外覆盖
有进程级超时保护(index.js)
代码结构清晰,有适当的错误处理