security(policy): HTTP 形态无人工审批闭环——permission hook 零接线、无权限规则时隐式放行
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- rust
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
场景 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();部署文档把「无沙箱 + 无权限配置」标记为不可用于生产。
- 主要言語
- Rust
- スター
- 4
- フォーク
- 0
- 平均マージ
- 5時間 32分
- マージ済み PR(30日)
- 7
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
jeffkit/recursive のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
jeffkit/recursive#134 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
jeffkit/recursive#132 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 58/100
jeffkit/recursive#87 · コメント 11 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
jeffkit/recursive#86 · コメント 6 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
jeffkit/recursive#52 · コメント 6 件 ·
メンテナーはふだん 1 日以内に返信
jeffkit/recursive の issue をすべて見る
似ている issue
-
agent:triaged bug bughunt pm:npm priority:p1
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
SocketDev/socket-patch#1127 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
documentation enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
adorsys/status-list-server#619 ·
メンテナーはふだん 2 日以内に返信
-
batch-backport only backports the first 30 matching PRs対応中かも @DvirDukhan が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 5 日以内に返信
-
Configuration-level resource: `Allocate` rejects the kubelet's re-offer of the same device for a later container of the same Pod ("Unable to claim slot")対応中かも @fang80913 が 38 日前に担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
project-akri/akri#854 ·