security(executor): 统一工具级审批 + env 白名单 + 结构化结果
P0-1 统一审批: 高风险工具在 spawn 前统一走审批,与后续消息类型
(result/http/db) 无关,堵住 stdio→result 绕过审批的漏洞。
移除 http/db 分支内重复审批(入口已授权)。
P0-4 env 白名单: spawn 前 cmd.env_clear(),仅注入 PATH + spec 声明
的 env 变量,避免工具读取宿主全部 API key/数据库密码。
tool_manager spec 补充 HOME/CARGO_HOME/RUSTUP_HOME 供 cargo 使用。
P1-10 结构化结果: 引入 ToolRunOutcome{Ok,Err{kind,message}} 与
ToolErrorKind 枚举,executor/registry dispatch 返回结构化结果。
daemon 与 CLI 据此判断成败,删除脆弱的 is_tool_error 字符串前缀
匹配;失败时记录 kind 便于追踪。
This commit is contained in:
@@ -5,6 +5,10 @@ tool: tool_manager
|
||||
path: /target/release/tool_manager
|
||||
risk_level: high
|
||||
timeout_secs: 300
|
||||
env:
|
||||
- HOME
|
||||
- CARGO_HOME
|
||||
- RUSTUP_HOME
|
||||
params:
|
||||
- name: action
|
||||
required: true
|
||||
|
||||
Reference in New Issue
Block a user