GCWing / GCWing/OpenBitFun

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

Open
#2,606 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
2.2k
Forks
229
Avg merge
2h 46m
Merged PRs (30d)
577

Description

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).

Contributor guide

Open the contributing guide

Research direction

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.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
authorization, security
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.