Skip to content

[ADR-060 Phase D] Tenant-boundary role composition + the named IDOR-shaped adversarial test #412

Description

@cuttlefisch

Part of #60-epic.

Depends on: #60-C

Per-KB roles (ADR-017/018) compose across tenants a principal is a member of; tenant quotas apply regardless of role; no new cross-tenant trust is created.

This phase's primary, highest-priority test (per real CVE precedent — Gitea CVE-2026-27771/CVE-2026-58444, Vaultwarden CVE-2026-27898, both root-caused to "authorization checked too late, on a path the addressing layer didn't anticipate"): a request correctly addressed at tenant A's own instance via Phase A's addressing, whose payload references a raw node ID actually belonging to a DIFFERENT tenant, must be rejected at ID-resolution time — not served just because the outer RPC was addressed correctly.

DoD

  • Role composition across tenants implemented, no new cross-tenant trust created
  • PRIMARY adversarial test (IDOR-shaped, named): cross-tenant raw-ID reference in an otherwise-correctly-addressed request is rejected at ID-resolution time
  • Adversarial test: owner-on-KB1/guest-on-KB2 principal rejected on KB2 regardless of quota headroom
  • Adversarial test: forged/rotated-key signature rejected identically to pre-multi-tenancy behavior

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:daemonmae-daemon (persistence, collab hub)enhancementNew feature or requestsecuritySecurity / auth / access control

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions