Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

security(policy): HTTP 形态无人工审批闭环——permission hook 零接线、无权限规则时隐式放行

Aberta
#88 10 comentários 0 reações 0 responsáveis Ver no GitHub

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

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 / 改工作区文件 / 公网外发;一份带注入的网页或文档即可驱动这一切。这是办公智能体底座最基本的人审闭环缺失。

建议

  1. http 模式提供服务端强制的审批通道:per-tool webhook 审批(复用 PermissionHook trait 对接企业审批流)或强制 plan-confirm 档位。
  2. 默认档至少挂 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

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de jeffkit/recursive

Todas as issues de jeffkit/recursive

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.