GitHub Advisoryadvisory · Go
GHSA-g3pg-frfm-pr2m OpenFGA: ListUsers returns a deliberately-excluded user when a `but not` exclusion under a type-bound wildcard is intersected (`and`) with another relation that also grants that user
MEDIUM
Official page ↗
- Aliases
- CVE-2026-61709
- Ecosystem
- Go
- Packages
- github.com/openfga/openfga
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N
- Weaknesses
- CWE-281, CWE-863
- Reviewed
- 2026-09-16
Affected packages
• Go github.com/openfga/openfga: < 1.18.1 → fixed in 1.18.1
Description
Description
In OpenFGA, the ListUsers API could incorrectly return a user who should have been excluded.
Preconditions
This applies if all of the following are present:
• The authorization model contains a relation defined as an intersection (and) where at least one operand is an exclusion of the form base but not excluded: e.g. `rel1: (public_user but not blocked) and rel2`
• The base side of that exclusion is granted through a type-bound public wildcard (e.g. user:*).
• A user excluded by the but not clause is also granted, via a concrete tuple, through another operand of the intersection.
• Your application uses ListUsers to enumerate or enforce access
Fix
Upgrade to OpenFGA v1.18.1 or greater.
Acknowledgements
OpenFGA would like to thank @5ud0er for the detailed report.
Related
Alias · CVE (1)
- CVE-2026-61709 OpenFGA is an authorization and permission engine built for developers. vulnerability
References
- https://github.com/openfga/openfga/security/advisories/GHSA-g3pg-frfm-pr2m web
- https://nvd.nist.gov/vuln/detail/CVE-2026-61709 advisory
- https://github.com/openfga/openfga/commit/171806c93b86bca29e0212ceb8b6ee9c48eb9ac3 web
- https://github.com/openfga/openfga package
- https://github.com/openfga/openfga/releases/tag/v1.18.1 web