You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The retro agent's post-retro.sh accepts any target_repo value from agent output as long as it matches the owner/repo regex format. There's no validation that the target is a repo the agent should be filing in. If the agent hallucinates or is prompt-injected, it could file issues in any repo the token has access to within the org.
The token scoping (org-bounded) limits blast radius, but within the org the agent has unsupervised control over where issues land.
What should happen
target_repo should be validated against a closed set of known-valid destinations:
The source repo — the repo whose PR triggered the retro
The org's .fullsend repo — for org-level configuration improvements
Any other target_repo value should be rejected by the post-script before attempting gh issue create.
Context
Split out from #672, which is now focused on the cross-org authorization mechanism. This issue covers the complementary concern: even within authorized orgs, the agent shouldn't have free rein over which repos it targets.
What happens
The retro agent's
post-retro.shaccepts anytarget_repovalue from agent output as long as it matches theowner/reporegex format. There's no validation that the target is a repo the agent should be filing in. If the agent hallucinates or is prompt-injected, it could file issues in any repo the token has access to within the org.The token scoping (org-bounded) limits blast radius, but within the org the agent has unsupervised control over where issues land.
What should happen
target_reposhould be validated against a closed set of known-valid destinations:.fullsendrepo — for org-level configuration improvementsfullsend-ai/fullsend— for upstream platform improvements (pending cross-org authorization from Retro agent post-script needs cross-org issue filing with authorization #672)Any other
target_repovalue should be rejected by the post-script before attemptinggh issue create.Context
Split out from #672, which is now focused on the cross-org authorization mechanism. This issue covers the complementary concern: even within authorized orgs, the agent shouldn't have free rein over which repos it targets.
Related: #672, #833