security(policy): HTTP 形态无人工审批闭环——permission hook 零接线、无权限规则时隐式放行
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- rust
- Domínio
- authorization, backend-api-design, security
Direção de pesquisa
Start with src/tools/policy_domain/permission_pipeline.rs:271-285 and the PermissionHook trait in src/tools/registry.rs:406, then inspect HTTP and CLI production paths for hook calls. Verify how exit_plan_mode handles REST confirmation and how the default policy and RECURSIVE_SANDBOX=policy affect tool execution. Done means HTTP has a server-enforced approval path or forced plan confirmation, with restrictive defaults and deployment guidance for unsafe configurations.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
场景 gap 单(okguitar 提报)· 优先级 P0 · 依赖:无
基线 HEAD = 9165b9a0。
Summary
- 权限管线在「非 Strict 且无显式规则」时隐式放行(仅 tracing::warn):
src/tools/policy_domain/permission_pipeline.rs:271-285;运维未配[permissions]时整个规则检查跳过,只剩保护路径检查(.git/.ssh)。 - 交互式人审的载体
with_permission_hook在 http/cli 生产路径零调用(全仓命中仅 trait 定义src/tools/registry.rs:406与#[cfg(test)]测试)。 - HTTP 下唯一的审批门是 exit_plan_mode 的 plan 确认(REST confirm/reject),但是否进 plan mode 由模型自主决定;
run_shell/Write/WebFetch外发在默认部署(无沙箱 + 无权限配置)下没有任何「人批一下」环节,run_shell在 host 直接执行且带全网出口。 - L1 deny 模式(rm -rf/mkfs/dd 等)只在
RECURSIVE_SANDBOX=policy档挂载,默认档无。
影响
办公场景:员工经前端下达的目标可让 agent 在服务器上直接执行任意 shell / 改工作区文件 / 公网外发;一份带注入的网页或文档即可驱动这一切。这是办公智能体底座最基本的人审闭环缺失。
建议
- http 模式提供服务端强制的审批通道:per-tool webhook 审批(复用 PermissionHook trait 对接企业审批流)或强制 plan-confirm 档位。
- 默认档至少挂
PolicyConfig::default_restrictive();部署文档把「无沙箱 + 无权限配置」标记为不可用于生产。
- Linguagem predominante
- Rust
- Estrelas
- 4
- Forks
- 0
- Merge médio
- 5h 32min
- PRs com merge (30d)
- 7
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de jeffkit/recursive
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
jeffkit/recursive#147 · 14 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
jeffkit/recursive#145 · 7 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
jeffkit/recursive#134 · 6 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de jeffkit/recursive
Issues semelhantes
-
✨ enhancement needs-discussion
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
-
docs(openclaw): RTK_REWRITE_HOST relaxes every default ask, not only commands no rule matchedAbertaarea:docs documentation good first issue priority:low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
rtk-ai/rtk#4500 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
triage:accepted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
open-telemetry/otel-arrow#4343 ·
Mantenedores costumam responder em até 2 dias
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
mishraprafful/multihull#150 ·
Mantenedores costumam responder em até 1 dia
-
area:tooling bug good first issue priority:P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
michaelnavazhylau/ngspice-rs#129 ·
Mantenedores costumam responder em até 1 dia