fix(approval): deny chains with zero required stages (#3448)
Sole Author: Patrick Ribbsaeter (@patrickswedish) · Immutable Commit SHA: b606f5a8b7f57dcce00d1107b5c6c614718207fe
Authorization security hardening blocking vacuous empty-set containment on zero-required-stage approval chains so unconfigured policies fail closed instead of resolving to ALLOW.

PR #3448
Merged Mainline
b606f5a
Immutable Git SHA
Python
Ai Infrastructure
105 Security Checks Green
CI & Test Matrix
01 · Engineering problem
The failure mode
Approval chains configured with zero required stages evaluated empty-set containment (∅ ⊆ completed) as vacuously true, allowing an optional ALLOW result to authorize execution.
02 · Technical response
What changed
- 01Added an explicit fail-closed guard denying approval chains whose required_stages set is empty prior to subset evaluation.
- 02Added security regression tests verifying resolution, state, and execution remain denied.
03 · Verified outcome
Evidence-backed result
- ✓Closed vacuous-truth authorization bypass in Microsoft Agent Governance Toolkit.
- ✓Merged upstream into microsoft/agent-governance-toolkit as commit b606f5a8b7f57dcce00d1107b5c6c614718207fe.
04 · Cryptographic Git record
Immutable source evidence
Independent open-source engineering authored solely by Patrick Ribbsaeter (@patrickswedish). Company and project names identify the public repository context only under nominative fair use. No employment, client, vendor, or partnership relationship is implied unless explicitly stated.