game-ui-voice-pack
Game UI Voice Pack 是合法的语音合成工具包,代码质量高,实现了完整的 OAuth 认证、MCP 通信和自动更新机制。主要风险点为自动更新功能的供应链理论风险,但代码包含 SHA256 验证可有效缓解。
为什么得出这个结论
0/4 个维度触发声明资源与推断能力基本一致。
提取到 7 个一般风险产物,需要结合上下文判断。
没有形成明确的恶意路径。
依赖结构存在,但暂未看到明显高危告警。
风险分是怎么被拉高的
代码从 cdn.beatra.ai 下载并自动替换 package-owned 文件,虽有 SHA256 验证但缺少代码签名
detect_host_platform() 和 _record_skill_inventory() 收集 agent 类型/平台信息,SKILL.md 未提及
allowed-tools 未明确声明 filesystem:WRITE 和 network:WRITE 权限
最关键的证据
自动更新功能存在供应链理论风险
代码实现自动更新机制,可从 cdn.beatra.ai 下载并自动替换 package-owned 文件(包括 scripts/*.py)。虽包含 SHA256 验证(discovery、manifest、archive 三级验证),但缺少代码签名验证。攻击者若能入侵 CDN 可能注入恶意代码。
scripts/mcp_client.py:31 未声明的系统信息收集
detect_host_platform() 函数读取 AI_AGENT、CLAUDECODE、CODEX_* 等环境变量检测 agent 平台;_record_skill_inventory() 记录安装路径。SKILL.md 未提及这些数据收集行为。
scripts/authorize.py:343 credential 文件权限验证
代码在 POSIX 系统上验证 ~/.beatra 目录权限为 700,credentials.json 为 600,确保凭证文件仅对当前用户可读。这是良好的安全实践。
scripts/mcp_client.py:1022 事务性更新和回滚机制完善
自动更新实现完整的事务机制:写入临时文件、创建备份、journal 记录、回滚函数。即使更新中断也能恢复到一致状态。
scripts/mcp_client.py:520 声明能力 vs 实际能力
scripts/authorize.py:206 创建 ~/.beatra/ 目录,mcp_client.py:723 写入配置文件 scripts/authorize.py:25 向 api.beatra.ai 发送 OAuth 请求,scripts/mcp_client.py:29 调用 MCP 端点 scripts/authorize.py:343 读取 AI_AGENT、CLAUDECODE 等环境变量检测平台 可疑产物与外联
https://console.beatra.ai/wallet?intent=buy SKILL.md:88
https://beatra.ai/skills/game-ui-voice-pack manifest.json:5
https://beatra.ai/icon-512x512.png manifest.json:6
https://mcp.beatra.ai/mcp manifest.json:56
https://api.beatra.ai scripts/authorize.py:25
https://beatra.ai/skills/game-ui-voice-pack/channels/clawhub/install.json scripts/mcp_client.py:31
https://cdn.beatra.ai/agent-packages/game-ui-voice-pack/channels/clawhub/v scripts/mcp_client.py:32
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| urllib | stdlib | Python 3 标准库 | 否 | 使用标准库进行 HTTP 请求,无第三方依赖 |
文件构成
scripts/mcp_client.py scripts/authorize.py SKILL.md manifest.json