rotifer-self-evolving-agent
Rotifer技能存在供应链风险和权限声明不完整的双重问题:通过npx动态执行远程npm包,且权限声明(network:outbound)未反映filesystem和code_execution实际需求
为什么得出这个结论
2/4 个维度触发发现 4 项声明之外的能力或越权行为。
提取到 10 个一般风险产物,需要结合上下文判断。
报告包含 4 步攻击链,另有 2 项高危或严重发现。
发现 1 项需要关注的依赖或供应链线索。
攻击链
初始入口 · SKILL.md:1
初始入口 · SKILL.md:19
权限提升 · SKILL.md:32
最终危害 · SKILL.md:53
风险分是怎么被拉高的
通过npx @rotifer/[email protected]从npm动态拉取并执行远程代码,非纯本地逻辑
clawhub.json声明network:outbound但实际需要filesystem:WRITE(安装Gene)和code_execution(执行Agent)
install_gene将第三方代码写入~/.rotifer/;agent_run执行这些代码,虽声称WASM沙箱但SKILL.md未充分说明限制
登录用户上报使用遥测数据到Rotifer Cloud(工具名/GeneID/延迟/用户ID),虽声称不含敏感信息但仍属数据外传
最关键的证据
通过npx动态执行远程npm包
SKILL.md声明运行时依赖@rotifer/[email protected]通过npx从npm动态拉取并执行。这是供应链攻击的高风险向量,npm包可能被篡改或存在恶意依赖。
SKILL.md:19 权限声明未反映实际filesystem操作
clawhub.json声明permissions: ['network:outbound'],但install_gene会将第三方Gene代码写入~/.rotifer/目录,这是filesystem:WRITE级别的操作。
clawhub.json:15 agent_run可执行任意安装的第三方代码
create_agent和agent_run允许创建并执行本地Agent,这些Agent由Gene组成,来自第三方 marketplace。虽然声称运行在WASM沙箱中,但SKILL.md未提供沙箱限制的技术细节。
SKILL.md:53 登录用户的使用遥测数据外传
当用户登录Rotifer账号时,MCP服务器会向Rotifer Cloud发送工具调用记录(工具名、Gene ID、执行结果、延迟、用户ID)。虽声称不含文件内容或环境变量,但仍有隐私风险。
SKILL.md:76 文档声称工具限制但未提供技术验证机制
SKILL.md声称--tools=evolve限制了10个工具,拒绝其他21个工具。但这是MCP服务器运行时行为,用户无法在执行前验证。
SKILL.md:21 声明能力 vs 实际能力
SKILL.md:32 install_gene写入~/.rotifer/ SKILL.md:53 agent_run执行Agent的Genes SKILL.md:18 npx命令执行 可疑产物与外联
https://rotifer.dev CONTRIBUTING.md:6
https://www.conventionalcommits.org/ CONTRIBUTING.md:20
https://developercertificate.org/ CONTRIBUTING.md:40
http://www.apache.org/licenses/ LICENSE:3
http://www.apache.org/licenses/LICENSE-2.0 LICENSE:184
https://www.npmjs.com/package/@rotifer/mcp-server/v/0.15.0 README.md:140
https://rotifer.ai README.md:185
https://rotifer.dev/docs README.md:186
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| @rotifer/mcp-server | 0.15.0 | npm | 否 | 通过npx动态拉取,存在供应链风险;建议本地安装并校验hash |
| @rotifer/playground | * | npm | 否 | fallback依赖,当rotifer CLI不在PATH时通过npx拉取 |
文件构成
LICENSE README.md SKILL.md CONTRIBUTING.md clawhub.json