GCWing / GCWing/OpenBitFun

[Security]: SessionControl list enumerates sessions in any workspace without caller-ownership check

クローズ
#2,606 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Rust
スター
2.3k
フォーク
231
平均マージ
2時間 49分
マージ済み PR(30日)
589

説明

Summary: SessionControl's list action accepts an explicit `workspace` argument and enumerates every session in it without checking whether the caller session belongs to that workspace. A delegated session can therefore enumerate other workspaces' session summaries (ids, names, activity times).

Area: Agent runtime / core

Reproduction or evidence: src/crates/assembly/core/src/agentic/tools/implementations/session_control_tool.rs:653-692 — the List branch resolves the effective workspace (resolve_effective_workspace, which for List accepts any workspace argument) and calls runtime.list_sessions directly; no caller-ownership check exists between resolution and enumeration.

Environment: BitFun version/commit 32f2427697ee16f253ee6119860a03255c0b3e47 (origin/main).

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

src/crates/assembly/core/src/agentic/tools/implementations/session_control_tool.rs:653-692 から始め、resolve_effective_workspace を経由して runtime.list_sessions まで List ブランチを追跡します。呼び出し元セッションの所有権がどのように表現されているかを確認し、委譲されたセッションが別の workspace を列挙するケースのカバレッジを追加します。そのような列挙が拒否され、許可された列挙は引き続き機能すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust
領域
authorization, security
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
明確に書かれている
初心者へのやさしさ
74/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。