Skip to main content

Risk Register

:::info Source Sourced from services/tenant-service/SERVICE_RISK_REGISTER.md in the documentation repo. :::

Severity: S1 Critical · S2 High · S3 Medium · S4 Low

IDRiskSevImpactMitigationOwner
R-TN-01ABAC policy complexity → mis-grants within tenantS1Data leak between org units / rolesPolicy linter; sample-data tests; UI shows policy in plain language; policy explainer endpointTenant Eng + Security
R-TN-02Dynamic group predicate with cross-tenant attributeS1Cross-tenant exposure via group membershipLinter rejects predicates without ctx.tenant_id; two-tenant isolation test on every predicateTenant Eng
R-TN-03OrgUnit ltree corruptionS2Authz decisions on malformed treePostgres CHECK on ltree path format; move/reparent wrapped in tx + tree-validity assertionTenant Eng
R-TN-04Role rename breaks consumersS2Consumers fail to match roleRoles keyed by ULID, not name; name changes are display-onlyTenant Eng
R-TN-05Data-residency migration bug → data loss / leakS1Partial data across regions; regulator fineRehearsals on production-size; checksums; rollback; saga tests; CTO sign-off on each migrationSRE + Tenant Eng + CTO
R-TN-06Policy bundle signature bypassS1Attacker ships malicious policyKMS-signed; consumers verify signature; signed version monotonicSecurity + Platform
R-TN-07System role drift from codeS2Roles in DB diverge from RBAC code expectationsSystem roles seeded on migration; drift detector in CITenant Eng
R-TN-08Feature flag tenant override blocked by eventual-consistencyS3Flag appears off for 30s after toggleBounded staleness documented; admin UI shows "propagating" stateTenant Eng
R-TN-09SAML attribute → role mapping misconfigS2Enterprise user gets wrong roleAttribute mapping editor validates against role list; test SSO flow before activateTenant Eng + SE
R-TN-10Membership re-activation races with enrollment revocationS3User re-invited sees stale enrollmentsNew Membership ULID on re-invite; old revoked enrollments stayTenant + Enrollment
R-TN-11GDPR erasure incomplete for tenantS1Tenant data retained after closureParticipate in erasure saga; delete memberships, roles-for-user, overridesCompliance + Tenant
R-TN-12tenant.status = suspended bypassS2Suspended tenant still serves requestsGateway rejects requests for suspended tenants; events still processed for payments/compliancePlatform + Tenant
R-TN-13Slug squattingS3Competitor reserves tenant slugSlug validation + reserved-names list + manual review for public slugsProduct
R-TN-14Ltree path depth > 1000S3Query plan degradesCHECK constraint: max depth 50Tenant Eng
R-TN-15Circular org-unit referenceS3Tree traversal loopsPrevent at write; integrity job nightlyTenant Eng

Governance

  • Weekly: Tenant Eng + Security review S1/S2 items.
  • Every release: verify mitigation still in place via test registry.
  • S1 items require named owner + verification plan + due date.