安全决策报告

agent-runtime

Agent Runtime 框架代码本身无恶意行为,但存在文档-行为不一致(未声明的内置工具)属于轻微阴影功能,以及权限控制在 SKILL.md 中被强调但实现为直接允许(简化版)。

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

为什么得出这个结论

1/4 个维度触发
阻止
声明与实际能力

发现 3 项声明之外的能力或越权行为。

通过
隐藏执行与外联

当前没有明显的高危外联或执行信号。

通过
攻击链与高危发现

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

复核
依赖与供应链卫生

没有完整依赖信息,供应链判断需要保留弹性。

风险分是怎么被拉高的

文档-行为差异 +15

SKILL.md 完全未声明内置工具(read_file/bash/search/todo),但代码中实现并注册

权限控制名不副实 +10

SKILL.md 强调'权限控制',但 SimpleHookRunner 实现直接允许(allowed:true, denied:false),无实际拦截

bash 工具权限宽松 +5

内置 bash 工具 permission='danger' 但 SKILL.md 未声明其存在,存在潜在的权限提升风险

最关键的证据

中危 文档欺骗

内置工具未在文档中声明

代码内置了 read_file、bash、search、todo 四个工具,且注册到运行时供用户调用,但 SKILL.md 完全没有提及这些工具的存在,仅描述了框架架构。

scripts/agent-runtime.mjs:137
在 SKILL.md 的工具列表或 allowed-tools 部分明确列出内置工具及其用途和权限级别。
中危 权限提升

权限控制实现为空壳

SKILL.md 强调'权限级别控制'、'权限控制'为核心功能,但 SimpleHookRunner 的 runPreToolUse 和 runPostToolUse 均直接返回 { allowed: true, denied: false },没有任何实际拦截逻辑。

scripts/agent-runtime.mjs:94
实现真实的权限检查逻辑,参照 SKILL.md 中声明的 PermissionLevel (READ/WRITE/DANGER/ADMIN) 进行工具过滤。
低危 权限提升

bash 工具未声明且权限较高

bash 工具 permission='danger'、shell:true,允许执行任意 shell 命令,且未在 SKILL.md 声明,存在潜在权限提升风险。

scripts/agent-runtime.mjs:153
如非必需,移除内置 bash 工具;如需保留,应在文档中明确声明并限制 agentTypes 范围。

声明能力 vs 实际能力

文件系统 阻止
声明 NONE
→
推断 READ
scripts/agent-runtime.mjs:143 内置 read_file 工具调用 fs.readFileSync
命令执行 阻止
声明 NONE
→
推断 WRITE
scripts/agent-runtime.mjs:157 内置 bash 工具使用 spawn('cmd', ['/C', command], {shell:true})
技能调用 阻止
声明 NONE
→
推断 WRITE
scripts/agent-runtime.mjs:155 动态 import('child_process')

可疑产物与外联

没有提取到明显 IOC。

依赖与供应链

没有结构化依赖告警。

文件构成

2 个文件 · 610 行
JavaScript 1 个文件 · 508 行Markdown 1 个文件 · 102 行
需关注文件 · 1
scripts/agent-runtime.mjs JavaScript · 508 行
内置工具未在文档中声明 · 权限控制实现为空壳 · bash 工具未声明且权限较高
其他文件 · SKILL.md

安全亮点

代码本身无恶意行为(无数据外泄、无凭证收割、无反向shell、无持久化)
框架架构清晰,有合理的组件分离(Registry/Hook/Compactor/Tracker)
无外部网络请求,无敏感路径硬编码
Usage Tracker 和 Session Compactor 实现合理