Highlights
Denial of Service: 29 prior fixes. Scrutinize any change in this area.
internal/graph: most-fixed (8 issues). Treat as high-risk during review.
29 high-severity fixes in this history; regressions here are high-impact.
Recurring patterns
The bug types that recur here, drawn from past fixes, not open vulnerabilities.
Auth Bypass: Recursive relationship evaluations, cycle-reduction math, and userset self-definitions are historically error-prone, occasionally resolving complex logical graphs in favor of unauthorized access. Strict validation and recursive cycle-tracking are paramount to prevent bypasses.
Denial of Service: Parallel queries, deep cyclical relation hierarchies, and high concurrency in ListObjects and ReverseExpand commands frequently trigger deadlocks, memory leaks, and goroutine starvation if context deadlines are not meticulously propagated.
Auth Bypass: Mishandling of cache invalidation timing and key collisions allows stale authorization relations or mismatched evaluation results to persist, creating high-severity access bypass windows.