GCWing / GCWing/OpenBitFun

[Security]: SessionHistory tool allows cross-session transcript export without authorization

Fermée
#2,604 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Rust
Étoiles
2.3k
Forks
231
Merge moyen
2 h 49 min
PR mergées (30 j)
589

Description

Summary: The SessionHistory tool exports a session's persisted transcript (optionally including tool inputs and thinking) without verifying that the caller is allowed to read it. Any session could export transcripts of unrelated sessions in the same workspace, and cross-workspace exports resolve without an ownership check.

Area: Agent runtime / core

Reproduction or evidence: src/crates/assembly/core/src/agentic/tools/implementations/session_history_tool.rs:218-252 — call_impl resolves the target workspace (via CoreServiceAgentRuntime::resolve_session_workspace_paths) and calls coordinator.export_visible_persisted_session_transcript directly; no authorization check exists between workspace resolution and export. Any caller session_id can thus read another session's transcript.

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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez dans src/crates/assembly/core/src/agentic/tools/implementations/session_history_tool.rs, en particulier dans call_impl autour des lignes 218-252. Suivez resolve_session_workspace_paths et coordinator.export_visible_persisted_session_transcript pour comprendre où l’autorisation doit être effectuée. Le travail est terminé lorsque les sessions sans rapport et les sessions inter-workspaces ne peuvent pas exporter de transcriptions persistées sans vérification de propriété.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
rust
Domaine
backend, security
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
Clairement spécifiée
Accessibilité débutants
68/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.