sage-router
AI模型路由代理服务,代码功能与声明基本一致,存在未声明的systemctl服务管理和Node.js子进程调用,属中等权限操作但无明确恶意行为。
Why this conclusion was reached
1/4 dimensions flagged2 undeclared or violating capabilities were inferred.
2 lower-risk artifacts were extracted and still need context.
There is no explicit malicious chain in the report.
1 dependency or supply-chain issues need attention.
What drove the risk score up
SKILL.md未声明但代码通过subprocess调用systemctl --user start/stop管理服务
通过subprocess.run(['node', ...])调用外部JS脚本,声明中无shell执行
写入~/.cache/sage-router/latency-stats.json无显式声明filesystem:WRITE
Most important evidence
systemctl服务管理未在声明中
代码通过subprocess调用systemctl --user start/stop来管理Dario服务(Anthropic兼容代理),这是sudo级别的系统服务操作,但SKILL.md env声明中未提及此能力。
router.py:27 Node.js子进程调用未声明
代码通过subprocess.run(['node', OPENCLAW_GATEWAY_HELPER])调用openclaw_gateway_agent.mjs脚本执行外部OpenClaw SDK调用,这是间接的shell执行,但SKILL.md未声明。
router.py:592 文件系统写入权限声明缺失
代码写入~/.cache/sage-router/latency-stats.json进行延迟统计持久化,这是filesystem:WRITE级别操作,但SKILL.md的env声明中未覆盖。
router.py:49 Declared capability vs actual capability
router.py:13 读取~/.openclaw/openclaw.json router.py:49-54 写入~/.cache/sage-router/latency-stats.json router.py 多处urllib请求到配置的AI providers router.py:25-42 systemctl调用 router.py:592 node调用openclaw_gateway_agent.mjs Suspicious artifacts and egress
http://127.0.0.1:3456 router.py:27
http://127.0.0.1:11434 router.py:592
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| openclaw | unknown | npm global | No | 通过Node.js加载openclaw SDK,无版本锁定 |
File composition
router.py