Skip to content

Expand policy attenuation vectors for deny-by-default edge cases #69

@OkeyAmy

Description

@OkeyAmy

Problem

Policy attenuation is the highest-risk DRS algorithm. If the verifier treats an ambiguous child policy as “probably narrower,” that becomes an authorization bypass. The policy language must stay small, mechanical, and fail-closed.

What to do

Add shared policy attenuation vectors for edge cases that must deny by default:

  • unknown policy operators or fields
  • omitted child fields when parent restricts them
  • mixed allowlist narrowing cases
  • numeric limits that widen instead of tighten
  • boolean restrictions such as pii_access and write_access
  • malformed policy values and wrong types

Acceptance criteria

  • shared fixtures include pass and fail cases for every supported policy field
  • Rust, Go, and TypeScript consume the same fixtures where applicable
  • unknown or malformed policy shapes fail closed
  • docs define the exact supported policy language and say unknown semantics are denied

Out of scope

  • defining tool-specific semantic capability meaning
  • runtime budget/call counting
  • adding a broad policy DSL

Metadata

Metadata

Assignees

No one assigned

    Labels

    algorithmProtocol algorithm correctness and conformancehighHigh severitysecuritySecurity vulnerability or hardening

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions