This report was generated in Chinese. Some content may be in Chinese.
Suspicious — Risk Score 40/100
Last scan:3 hr ago Rescan
40 /100
nim-ensemble / free-scaling
基于NVIDIA NIM免费API的多模型集成推理库,支持模型健康检测、ELO在线学习、用户反馈循环
免费AI模型集成库,代码功能正常但存在文档未声明的凭证访问行为(Copilot token刷新机制扫描本地GitHub OAuth令牌),存在文档-行为差异。
Skill Namenim-ensemble / free-scaling
Duration69.0s
Enginepi
ClawHub Free Scaling v3.3.1 by isotrivial
📥 239
ClawHub Verdict Suspicious dynamic_code_executionllm_suspiciousvt_suspicious
Use with caution
补充SKILL.md文档声明Copilot API集成和GitHub OAuth令牌访问机制;或移除未声明的凭证扫描逻辑。

Findings 3 items

Severity Finding Location
Medium
Copilot token刷新机制未在文档中声明 Doc Mismatch
_refresh_copilot_token() 函数扫描本地auth-profiles.json文件查找GitHub OAuth令牌(ghu_*)以刷新Copilot API会话令牌,但SKILL.md未提及此功能或GitHub Copilot集成。
for profile_path in glob.glob(os.path.expanduser("~/.openclaw/agents/*/agent/auth-profiles.json")):
    # 查找 GitHub OAuth token
→ 在SKILL.md中明确声明使用GitHub Copilot API及OAuth认证机制
nim_ensemble/voter.py:73-91
Low
依赖OpenClaw凭证存储目录 Priv Escalation
代码依赖 ~/.openclaw/credentials/ 存储Copilot会话令牌,且会读取其他agent的auth-profiles.json,存在凭证访问边界超出skill范围的潜在问题。
token_path = os.path.expanduser("~/.openclaw/credentials/github-copilot.token.json")
→ 考虑使用skill独立的凭证存储机制,而非依赖OpenClaw全局存储
nim_ensemble/voter.py:56-57
Low
无版本锁定的间接依赖 Supply Chain
代码使用Python标准库 urllib.request 作为HTTP客户端,虽无外部依赖但也意味着没有安全更新机制。
urllib.request.urlopen(req, timeout=curl_timeout)
→ 保持stdlib使用即可,注意Python版本安全性
nim_ensemble/voter.py:119-142
ResourceDeclaredInferredStatusEvidence
Filesystem NONE READ ✓ Aligned voter.py:73-91 扫描 auth-profiles.json
Network WRITE WRITE ✓ Aligned urllib NIM/Copilot API调用
Environment READ READ ✓ Aligned 读取 NVIDIA_API_KEY
Shell NONE NONE 无subprocess调用
3 findings
🔗
Medium External URL 外部 URL
https://build.nvidia.com
README.md:3
🔗
Medium External URL 外部 URL
https://integrate.api.nvidia.com/v1/chat/completions
nim_ensemble/models.py:3
🔗
Medium External URL 外部 URL
https://api.individual.githubcopilot.com/chat/completions
nim_ensemble/voter.py:39

File Tree

18 files · 171.9 KB · 4916 lines
Python 16f · 4526L Markdown 2f · 390L
├─ 📁 nim_ensemble
│ ├─ 🐍 __init__.py Python 57L · 1.9 KB
│ ├─ 🐍 benchmark.py Python 385L · 13.3 KB
│ ├─ 🐍 capability_map.py Python 401L · 15.1 KB
│ ├─ 🐍 cascade.py Python 702L · 26.0 KB
│ ├─ 🐍 cli.py Python 227L · 8.1 KB
│ ├─ 🐍 elo.py Python 247L · 7.9 KB
│ ├─ 🐍 evolve.py Python 103L · 3.4 KB
│ ├─ 🐍 feedback.py Python 294L · 9.7 KB
│ ├─ 🐍 generate.py Python 338L · 11.7 KB
│ ├─ 🐍 health.py Python 124L · 3.9 KB
│ ├─ 🐍 models.py Python 206L · 5.9 KB
│ ├─ 🐍 parser.py Python 111L · 4.0 KB
│ └─ 🐍 voter.py Python 453L · 15.2 KB
├─ 📁 presets
│ ├─ 🐍 __init__.py Python 1L · 59 B
│ └─ 🐍 audit.py Python 391L · 14.1 KB
├─ 📁 tests
│ └─ 🐍 test_core.py Python 486L · 18.2 KB
├─ 📝 README.md Markdown 194L · 6.7 KB
└─ 📝 SKILL.md Markdown 196L · 6.8 KB

Dependencies 1 items

PackageVersionSourceKnown VulnsNotes
urllib stdlib Python No 标准库HTTP客户端,无外部依赖

Security Positives

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