安全决策报告

nim-ensemble / free-scaling

免费AI模型集成库,代码功能正常但存在文档未声明的凭证访问行为(Copilot token刷新机制扫描本地GitHub OAuth令牌),存在文档-行为差异。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/6
文件 18
IOC 3
越权项 0
发现 3

为什么得出这个结论

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

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

复核
隐藏执行与外联

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

通过
攻击链与高危发现

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

通过
依赖与供应链卫生

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

风险分是怎么被拉高的

未声明的凭证访问 +20

_refresh_copilot_token() 扫描 ~/.openclaw/agents/*/auth-profiles.json 查找 ghu_* GitHub OAuth令牌,用于刷新Copilot会话

文档-行为差异 +15

SKILL.md未提及Copilot API集成和GitHub OAuth认证机制

隐蔽依赖 +5

依赖 OPENCLAW_WORKSPACE 环境变量访问外部凭证目录

最关键的证据

中危 文档欺骗

Copilot token刷新机制未在文档中声明

_refresh_copilot_token() 函数扫描本地auth-profiles.json文件查找GitHub OAuth令牌(ghu_*)以刷新Copilot API会话令牌,但SKILL.md未提及此功能或GitHub Copilot集成。

nim_ensemble/voter.py:73-91
在SKILL.md中明确声明使用GitHub Copilot API及OAuth认证机制
低危 权限提升

依赖OpenClaw凭证存储目录

代码依赖 ~/.openclaw/credentials/ 存储Copilot会话令牌,且会读取其他agent的auth-profiles.json,存在凭证访问边界超出skill范围的潜在问题。

nim_ensemble/voter.py:56-57
考虑使用skill独立的凭证存储机制,而非依赖OpenClaw全局存储
低危 供应链

无版本锁定的间接依赖

代码使用Python标准库 urllib.request 作为HTTP客户端,虽无外部依赖但也意味着没有安全更新机制。

nim_ensemble/voter.py:119-142
保持stdlib使用即可,注意Python版本安全性

声明能力 vs 实际能力

文件系统 通过
声明 NONE
推断 READ
voter.py:73-91 扫描 auth-profiles.json
网络访问 通过
声明 WRITE
推断 WRITE
urllib NIM/Copilot API调用
环境变量 通过
声明 READ
推断 READ
读取 NVIDIA_API_KEY
命令执行 通过
声明 NONE
推断 NONE
无subprocess调用

可疑产物与外联

中危 外部 URL
https://build.nvidia.com

README.md:3

中危 外部 URL
https://integrate.api.nvidia.com/v1/chat/completions

nim_ensemble/models.py:3

中危 外部 URL
https://api.individual.githubcopilot.com/chat/completions

nim_ensemble/voter.py:39

依赖与供应链

包名版本来源漏洞备注
urllib stdlib Python 标准库HTTP客户端,无外部依赖

文件构成

18 个文件 · 4916 行
Python 16 个文件 · 4526 行Markdown 2 个文件 · 390 行
需关注文件 · 2
nim_ensemble/voter.py Python · 453 行
Copilot token刷新机制未在文档中声明 · 依赖OpenClaw凭证存储目录 · 无版本锁定的间接依赖 · https://api.individual.githubcopilot.com/chat/completions
README.md Markdown · 194 行
https://build.nvidia.com
其他文件 · cascade.py · test_core.py · capability_map.py · audit.py · benchmark.py · generate.py +4

安全亮点

代码结构清晰,无恶意行为证据
使用urllib代替curl/subprocess避免shell注入
无eval/exec/execfile等危险函数
无base64解码执行或代码混淆
API调用目标明确(NVIDIA NIM + GitHub Copilot),无隐蔽C2通信
使用tempfile原子写入保护状态文件
线程锁保护并发状态读写
测试覆盖全面,包含安全相关测试(如否定解析)