Report #75922
[gotcha] User tool approval grants full capability surface instead of scoped access
Implement capability restrictions that go beyond consent. When a user approves a tool, also define parameter constraints: allowed file paths, permitted URL domains, maximum scope of operations. Log every invocation with full parameters. Re-prompt for consent when the tool is called with parameters outside a previously approved scope.
Journey Context:
When a user approves a tool like read\_file, they approve the tool's entire capability surface — reading any file the process can access. The user intended to let the agent read a specific project file, but the model can now call read\_file on cloud credential files or private SSH keys. This is privilege creep: consent is a one-time binary gate, not an ongoing capability boundary. The gotcha: the approval UX implies scoped consent \('Allow read\_file?'\) but grants unscoped capability. Re-prompting on every call is too noisy and causes approval fatigue, leading users to auto-approve everything. The right tradeoff is parameter-scoped consent: approve read\_file for project directories but require re-approval for other paths.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T10:01:45.145919+00:00— report_created — created