安全决策报告

sage-router

AI模型路由代理服务,代码功能与声明基本一致,存在未声明的systemctl服务管理和Node.js子进程调用,属中等权限操作但无明确恶意行为。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/21
文件 5
IOC 2
越权项 2
发现 3
最直接的威胁证据

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

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

风险分是怎么被拉高的

systemctl未在声明中 +18

SKILL.md未声明但代码通过subprocess调用systemctl --user start/stop管理服务

Node.js子进程未声明 +12

通过subprocess.run(['node', ...])调用外部JS脚本,声明中无shell执行

文件系统写入未声明 +8

写入~/.cache/sage-router/latency-stats.json无显式声明filesystem:WRITE

最关键的证据

中危 权限提升

systemctl服务管理未在声明中

代码通过subprocess调用systemctl --user start/stop来管理Dario服务(Anthropic兼容代理),这是sudo级别的系统服务操作,但SKILL.md env声明中未提及此能力。

router.py:27
在SKILL.md env或文档中显式声明需要systemctl --user权限管理Dario服务
低危 权限提升

Node.js子进程调用未声明

代码通过subprocess.run(['node', OPENCLAW_GATEWAY_HELPER])调用openclaw_gateway_agent.mjs脚本执行外部OpenClaw SDK调用,这是间接的shell执行,但SKILL.md未声明。

router.py:592
补充声明依赖Node.js运行时和openclaw npm包
低危 文档欺骗

文件系统写入权限声明缺失

代码写入~/.cache/sage-router/latency-stats.json进行延迟统计持久化,这是filesystem:WRITE级别操作,但SKILL.md的env声明中未覆盖。

router.py:49
在SKILL.md中声明需要写入缓存目录的权限

声明能力 vs 实际能力

文件系统 通过
声明 NONE
推断 READ
router.py:13 读取~/.openclaw/openclaw.json
文件系统 通过
声明 NONE
推断 WRITE
router.py:49-54 写入~/.cache/sage-router/latency-stats.json
网络访问 通过
声明 NONE
推断 READ
router.py 多处urllib请求到配置的AI providers
命令执行 阻止
声明 NONE
推断 WRITE
router.py:25-42 systemctl调用
命令执行 阻止
声明 NONE
推断 WRITE
router.py:592 node调用openclaw_gateway_agent.mjs

可疑产物与外联

中危 外部 URL
http://127.0.0.1:3456

router.py:27

中危 外部 URL
http://127.0.0.1:11434

router.py:592

依赖与供应链

包名版本来源漏洞备注
openclaw unknown npm global 通过Node.js加载openclaw SDK,无版本锁定

文件构成

5 个文件 · 2398 行
Python 1 个文件 · 2152 行Markdown 2 个文件 · 134 行JavaScript 1 个文件 · 102 行JSON 1 个文件 · 10 行
需关注文件 · 1
router.py Python · 2152 行
systemctl服务管理未在声明中 · Node.js子进程调用未声明 · 文件系统写入权限声明缺失 · http://127.0.0.1:3456 · http://127.0.0.1:11434
其他文件 · SKILL.md · openclaw_gateway_agent.mjs · BRANCH_PROTECTION.md · _meta.json

安全亮点

纯路由代理功能,无凭证收割或敏感数据外泄
所有网络请求目标均为配置的合法AI providers(localhost或openclaw.json)
无base64/eval/反分析混淆代码
无后门植入或持久化机制
OpenClaw gateway连接为本地ws://127.0.0.1:18789(预扫描IOC为med风险)
代码结构清晰,注释完整,路由逻辑可审计