xerg
纯文档型技能,通过npx执行外部npm包实现功能。权限声明与文档行为存在偏差(skill_invoke:ADMIN未使用、database:WRITE缺失),存在供应链风险和未声明的网络写权限。
为什么得出这个结论
1/4 个维度触发发现 4 项声明之外的能力或越权行为。
提取到 10 个一般风险产物,需要结合上下文判断。
没有形成明确的恶意路径。
依赖结构存在,但暂未看到明显高危告警。
风险分是怎么被拉高的
通过npx执行外部npm包@xerg/cli,无法审查实际代码行为
声明skill_invoke:ADMIN但文档未使用;未声明database:WRITE但读取Hermes state.db
activate --push-latest会POST审计结果到api.xerg.ai,但只声明network:READ
SSH/rsync/railway/fly列为依赖但未明确是否实际调用
文档详细说明权限请求、用户确认机制和边界限制
最关键的证据
外部npm包供应链依赖
技能通过npx执行外部包@xerg/cli,无法审查实际代码。所有功能实现依赖于第三方npm包。
SKILL.md:62 权限声明超出实际需要
声明skill_invoke:ADMIN但文档中未使用此权限。技能仅调用npx命令,不涉及技能间调用。
_meta.json:4 缺少database权限声明
文档明确说明读取Hermes state.db(SQLite数据库),但未声明database:READ权限。
SKILL.md:128 缺少filesystem权限声明
技能读取日志文件、转录文件等本地数据,但未声明filesystem:READ。
SKILL.md:109 未声明的network:WRITE
activate --push-latest命令将审计结果POST到api.xerg.ai,但权限声明只有network:READ。
SKILL.md:77 外部工具依赖声明不明确
dependencies列表包含ssh/rsync/railway/fly,但文档未明确这些是否实际被调用。SSH/rsync可能用于远程审计功能。
_meta.json:18 声明能力 vs 实际能力
SKILL.md:30-40 声明读取XERG_API_KEY等变量 SKILL.md:77 activate --push-latest POST数据到api.xerg.ai SKILL.md:62-67 所有npx命令执行 _meta.json:4 声明但SKILL.md未使用 SKILL.md:125-128 读取Hermes state.db SKILL.md:109-115 读取日志、转录文件、CSV 可疑产物与外联
https://xerg.ai/skill.md README.md:9
https://xerg.ai/docs README.md:10
https://status.xerg.ai README.md:11
https://api.xerg.ai. README.md:32
https://www.npmjs.com/package/@xerg/cli README.md:39
https://www.openssh.com/ README.md:42
https://rsync.samba.org/ README.md:45
https://fly.io/docs/flyctl/ README.md:51
https://xerg.ai/agents README.md:66
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| @xerg/cli | latest | npm | 否 | 外部npm包,实际代码不可审查 |
| ssh | N/A | system | 否 | 外部二进制,用于远程审计功能 |
| rsync | N/A | system | 否 | 外部二进制,用于远程审计功能 |
| railway | N/A | npm | 否 | Railway CLI依赖 |
| fly | N/A | system | 否 | Fly.io CLI依赖 |
文件构成
README.md SKILL.md