grok-swarm
cli.py实现了未在SKILL.md中声明的--execute参数,允许执行任意shell命令,构成明确的代码执行风险。
为什么得出这个结论
2/4 个维度触发发现 3 项声明之外的能力或越权行为。
提取到 1 个一般风险产物,需要结合上下文判断。
报告包含 3 步攻击链,另有 2 项高危或严重发现。
发现 1 项需要关注的依赖或供应链线索。
攻击链
初始入口 · SKILL.md:1
权限提升 · bridge/cli.py:229
最终危害 · N/A
风险分是怎么被拉高的
cli.py的--execute参数允许执行任意shell命令,完全未在SKILL.md中声明
grok_bridge.py读取多个位置的API密钥:环境变量、~/.config/grok-swarm/config.json、~/.openclaw/*/auth-profiles.json
连接https://openrouter.ai/api/v1,存在数据外泄的理论风险
install.sh使用pip install openai>=1.0.0,未锁定具体版本
最关键的证据
未声明的shell执行功能
cli.py实现了--execute参数,允许执行任意shell命令。这是SKILL.md中完全未提及的影子功能,用户在不知情的情况下可能触发恶意命令执行。
bridge/cli.py:229 任意命令执行风险
通过--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 网络通信未声明
SKILL.md未提及该技能会连接外部API(https://openrouter.ai/api/v1)进行通信。用户应知情数据会被发送到第三方。
bridge/grok_bridge.py:29 依赖无版本锁定
install.sh中使用pip install openai>=1.0.0,未锁定具体版本,可能安装到存在漏洞的版本。
install.sh:51 声明能力 vs 实际能力
bridge/cli.py:229-237 subprocess.run(args.execute, shell=True) bridge/grok_bridge.py:74-75 os.environ.get(OPENROUTER_API_KEY) SKILL.md声明File Writing能力,apply.py实现 bridge/grok_bridge.py:29 OpenRouter API调用 可疑产物与外联
https://openrouter.ai/api/v1 bridge/grok_bridge.py:29
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| openai | >=1.0.0 | pip | 否 | 无版本锁定,存在供应链风险 |
文件构成
bridge/grok_bridge.py bridge/cli.py install.sh