[Security]: SessionControl list enumerates sessions in any workspace without caller-ownership check
- Vorherrschende Sprache
- Rust
- Sterne
- 2.3k
- Forks
- 231
- Ø Merge
- 2 Std. 46 Min.
- Gemergte PRs (30 T.)
- 577
Beschreibung
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).
Beitragsleitfaden
Rechercherichtung
Start in src/crates/assembly/core/src/agentic/tools/implementations/session_control_tool.rs:653-692 and trace the List branch through resolve_effective_workspace to runtime.list_sessions. Check how caller-session ownership is represented and add coverage for delegated sessions listing another workspace; done means such enumeration is rejected while permitted listings still work.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- rust
- Bereich
- authorization, security
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 74/100