Skip to content

fix(security): preserve denied tool request precedence - #10612

Merged
alexhancock merged 1 commit into
mainfrom
jbg/security-deny-precedence
Jul 31, 2026
Merged

fix(security): preserve denied tool request precedence#10612
alexhancock merged 1 commit into
mainfrom
jbg/security-deny-precedence

Conversation

@jbg

@jbg jbg commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • keep a denied tool request out of the approval queue when another inspector requires approval
  • preserve denial as the highest-priority inspection result in either result order
  • cover the regression and the legitimate approval-required path

Security impact

An inspection result that requires approval can no longer resurrect a request that Goose has already denied. This keeps permission result buckets mutually exclusive and preserves the documented Deny > RequireApproval > Allow precedence.

Audit issue: project-loupe/audit-goose#110

Verification

  • cargo fmt --all
  • cargo test -p goose --test tool_inspection_permission_precedence
  • cargo build -p goose
  • cargo clippy -p goose --all-targets -- -D warnings

This finding was discovered by Project Loupe.

@alexhancock

Copy link
Copy Markdown
Collaborator

@dorien-koelemeijer would you mind reviewing? Thanks!

@alexhancock alexhancock self-assigned this Jul 30, 2026
@alexhancock
alexhancock merged commit 83ee4ef into main Jul 31, 2026
34 of 35 checks passed
@alexhancock
alexhancock deleted the jbg/security-deny-precedence branch July 31, 2026 21:03
lifeizhou-ap added a commit that referenced this pull request Aug 3, 2026
* main: (103 commits)
  fix: parse PyPI requirements for OSV checks (#10510)
  fix(telegram): contain voice file extensions (#10456)
  Revert "feat(security): chunk command-classifier input with overlapping windows" (#10416) (#10870)
  docs: update Discord invite (#10863)
  fix(security): preserve denied tool request precedence (#10612)
  fix(hints): contain subdirectory hint discovery (#10545)
  chore(deps): bump pem from 3.0.6 to 4.0.0 (#10853)
  chore(deps): bump base64 from 0.22.1 to 0.23.0 (#10851)
  chore(deps): bump jsonwebtoken from 10.4.0 to 11.0.0 (#10850)
  chore(deps): bump astral-sh/setup-uv from 8.3.2 to 9.0.0 (#10847)
  chore(deps): bump docker/login-action from 4.5.1 to 4.5.2 (#10846)
  chore(deps): bump github/codeql-action from 4 to 4.37.3 (#10845)
  chore(deps): bump actions/stale from 10.4.0 to 11.0.0 (#10844)
  feat(dictation): add LOCAL_WHISPER_LANGUAGE for multilingual local transcription (#10634)
  fix(desktop): clear stale validation error when reopening the schedule modal (#10627)
  fix(docs): resolve CVE-2026-13149 in both brace-expansion copies (#10842)
  feat(provider): add Friendli as declarative provider (#10762)
  fix: sanitize shell/subprocess call in linux.rs (#10748)
  fix(desktop): unlink destination before copying binaries (#10705)
  feat(otel): enrich root span with gen_ai attributes and improve output format (#10816)
  ...
michaelneale added a commit that referenced this pull request Aug 4, 2026
* origin/main: (42 commits)
  chore (codex-acp): migrate to @agentclientprotocol/codex-acp (#10923)
  style: add dark mode inline code styling for message bubbles (#10861)
  docs: clarify macOS sandbox feature was removed in post-v1.25.0 cleanup (#10900)
  fall back to static model list only for non-models payloads (#10189)
  Remove CLI project support (#10838)
  fix(anthropic): add claude-sonnet-5 and claude-fable-5 to known models list (#10865)
  fix: stdio extensions silently skipped when name missing or env: used in config (#10773)
  feat(desktop): show session metadata on sidebar chat hover (#10663)
  fix(serve): start scheduler at startup instead of first ACP connection (#10766)
  fix: respect disabled builtin extensions (developer) at session start (#10223)
  fix: parse PyPI requirements for OSV checks (#10510)
  fix(telegram): contain voice file extensions (#10456)
  Revert "feat(security): chunk command-classifier input with overlapping windows" (#10416) (#10870)
  docs: update Discord invite (#10863)
  fix(security): preserve denied tool request precedence (#10612)
  fix(hints): contain subdirectory hint discovery (#10545)
  chore(deps): bump pem from 3.0.6 to 4.0.0 (#10853)
  chore(deps): bump base64 from 0.22.1 to 0.23.0 (#10851)
  chore(deps): bump jsonwebtoken from 10.4.0 to 11.0.0 (#10850)
  chore(deps): bump astral-sh/setup-uv from 8.3.2 to 9.0.0 (#10847)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants