CVE-2026-61709
OpenFGA: ListUsers returns a deliberately-excluded user (authorization-decision over-inclusion) when a `but not` exclusion under a type-bound wildcard is intersected (`and`) with another relation that also grants that user
OpenFGA is an authorization and permission engine built for developers. Prior to 1.18.1, the ListUsers API could return a user that should have been excluded when an authorization relation used an intersection containing a base but not excluded operand, the base was granted through a type-bound public wildcard, and the excluded user also had a concrete tuple through another intersection operand. In pkg/server/commands/listusers/list_users_rpc.go, expandIntersection counted the concrete tuple and wildcard without first rejecting entries in excludedUsersMap. Applications that used ListUsers to enumerate or enforce access could therefore treat an excluded user as authorized. This issue is fixed in version 1.18.1.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.3
OpenFGA: ListUsers returns a deliberately-excluded user (authorization-decision over-inclusion) when a `but not` exclusion under a type-bound wildcard is intersected (`and`) with another relation that also grants that user
OpenFGA is an authorization and permission engine built for developers. Prior to 1.18.1, the ListUsers API could return a user that should have been excluded when an authorization relation used an intersection containing a base but not excluded operand, the base was granted through a type-bound public wildcard, and the excluded user also had a concrete tuple through another intersection operand. In pkg/server/commands/listusers/list_users_rpc.go, expandIntersection counted the concrete tuple and wildcard without first rejecting entries in excludedUsersMap. Applications that used ListUsers to enumerate or enforce access could therefore treat an excluded user as authorized. This issue is fixed in version 1.18.1.
- Record
CVE-2026-61709- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-281, CWE-863
- Updated
- 2026-11-02
EUVDEUVD-2026-80777
5.3
OpenFGA is an authorization and permission engine built for developers. Prior to 1.18.1, the ListUsers API could return a user that should have been excluded when an authorization relation used an intersection containing a base but not excluded operand, the base was granted through a type-bound public wildcard, and the excluded user also had a concrete tuple through another intersection operand. In pkg/server/commands/listusers/list_users_rpc.go, expandIntersection counted the concrete tuple and wildcard without first rejecting entries in excludedUsersMap. Applications that used ListUsers to enumerate or enforce access could therefore treat an excluded user as authorized. This issue is fixed in version 1.18.1.
- Record
EUVD-2026-80777- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-g3pg-frfm-pr2m
5.3
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
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.
- Record
GHSA-g3pg-frfm-pr2m- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-281, CWE-863
- Updated
- 2026-11-02
NVD
5.3
OpenFGA is an authorization and permission engine built for developers. Prior to 1.18.1, the ListUsers API could return a user that should have been excluded when an authorization relation used an intersection containing a base but not excluded operand, the base was granted through a type-bound public wildcard, and the excluded user also had a concrete tuple through another intersection operand. In pkg/server/commands/listusers/list_users_rpc.go, expandIntersection counted the concrete tuple and wildcard without first rejecting entries in excludedUsersMap. Applications that used ListUsers to enumerate or enforce access could therefore treat an excluded user as authorized. This issue is fixed in version 1.18.1.
- Record
CVE-2026-61709- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-281, CWE-863
- Updated
- 2026-11-02
OSV
5.3
OpenFGA: ListUsers returns a deliberately-excluded user (authorization-decision over-inclusion) when a `but not` exclusion under a type-bound wildcard is intersected (`and`) with another relation that also grants that user
OpenFGA is an authorization and permission engine built for developers. Prior to 1.18.1, the ListUsers API could return a user that should have been excluded when an authorization relation used an intersection containing a base but not excluded operand, the base was granted through a type-bound public wildcard, and the excluded user also had a concrete tuple through another intersection operand. In pkg/server/commands/listusers/list_users_rpc.go, expandIntersection counted the concrete tuple and wildcard without first rejecting entries in excludedUsersMap. Applications that used ListUsers to enumerate or enforce access could therefore treat an excluded user as authorized. This issue is fixed in version 1.18.1.
- Record
CVE-2026-61709- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-281, CWE-863
- Updated
- 2026-11-02
OSVGHSA-g3pg-frfm-pr2m
5.3
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
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.
- Record
GHSA-g3pg-frfm-pr2m- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-281, CWE-863
- Updated
- 2026-11-02
Show 6 moreShow less
OSVRHSA-2026:67605
7.3
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:67605- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSVRHSA-2026:68777
6.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:68777- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
OSVRHSA-2026:68821
7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:68821- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRHSA-2026:71040
5.3
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:71040- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVRHSA-2026:72498
8.1
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:72498- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGO-2026-6488 No score
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 in github.com/openfga/openfga
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 in github.com/openfga/openfga
- Record
GO-2026-6488- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/openfga/openfgaGo |
through 1.18.0 | 1.18.1 |
github.com/openfga/openfgaGo |
before 1.18.1 | 1.18.1 |
grafana13.2Red Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:13.2.1-0.4.hum1 | 0:13.2.1-0.4.hum1 |
grafana12.4Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:12.4.10-0.5.hum1 | 0:12.4.10-0.5.hum1 |
grafana12.4Red Hat:hummingbird:1 From an advisory covering 14 CVEs |
before 0:12.4.10-0.6.hum1 | 0:12.4.10-0.6.hum1 |
grafana13.1Red Hat:hummingbird:1 From an advisory covering 2 CVEs |
before 0:13.1.6-0.3.hum1 | 0:13.1.6-0.3.hum1 |
grafana13.1Red Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:13.1.6-0.4.hum1 | 0:13.1.6-0.4.hum1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-61709 is a medium vulnerability (CVSS 5.3) in Openfga, published September 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.35%, the 28th percentile. Fixed in github.com/openfga/openfga 1.18.1.
References
github.com/openfga/openfga/security/advisories/GHSA-g3pg-frfm-pr2m
github.com/openfga/openfga/commit/171806c93b86bca29e0212ceb8b6ee9c48eb9ac3
github.com/openfga/openfga/releases/tag/v1.18.1
nvd.nist.gov/vuln/detail/CVE-2026-61709
github.com/advisories/GHSA-g3pg-frfm-pr2m
github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61709.json
Show 138 moreShow less
github.com/openfga/openfga
access.redhat.com/errata/RHSA-2026:67605
access.redhat.com/security/cve/CVE-2026-90771
access.redhat.com/security/updates/classification
images.redhat.com
access.redhat.com/security/cve/CVE-2026-9029
access.redhat.com/security/cve/CVE-2026-10601
access.redhat.com/security/cve/CVE-2026-61709
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_67605.json
bugzilla.redhat.com/show_bug.cgi?id=2491346
cve.org/CVERecord?id=CVE-2026-9029
nvd.nist.gov/vuln/detail/CVE-2026-9029
grafana.com/security/security-advisories/cve-2026-9029
bugzilla.redhat.com/show_bug.cgi?id=2491359
cve.org/CVERecord?id=CVE-2026-10601
nvd.nist.gov/vuln/detail/CVE-2026-10601
grafana.com/security/security-advisories/cve-2026-10601
bugzilla.redhat.com/show_bug.cgi?id=2535473
cve.org/CVERecord?id=CVE-2026-61709
bugzilla.redhat.com/show_bug.cgi?id=2532688
cve.org/CVERecord?id=CVE-2026-90771
nvd.nist.gov/vuln/detail/CVE-2026-90771
github.com/hapijs/joi
github.com/hapijs/joi/blob/v18.2.8/lib/messages.js
github.com/hapijs/joi/commit/5b8333c9177e08b4ef4ed02903c2d657084e7afb
github.com/hapijs/joi/issues/3150
vulncheck.com/advisories/joi-before-17.13.8-and-18.2.9-prototype-pollution-via-messages
access.redhat.com/errata/RHSA-2026:68777
access.redhat.com/security/cve/CVE-2026-81871
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_68777.json
bugzilla.redhat.com/show_bug.cgi?id=2535725
cve.org/CVERecord?id=CVE-2026-81871
nvd.nist.gov/vuln/detail/CVE-2026-81871
github.com/open-telemetry/opentelemetry-go/commit/c65d435b43e5e6b82310e6b18dd4cdcb8ac63a0c
github.com/open-telemetry/opentelemetry-go/releases/tag/exporters/otlp/otlplog/otlploggrpc/v0.21.0
github.com/open-telemetry/opentelemetry-go/security/advisories/GHSA-w34q-cm8f-9c5x
access.redhat.com/errata/RHSA-2026:68821
access.redhat.com/security/cve/CVE-2026-33380
access.redhat.com/security/cve/CVE-2026-33378
access.redhat.com/security/cve/CVE-2026-28374
access.redhat.com/security/cve/CVE-2026-33377
access.redhat.com/security/cve/CVE-2026-33376
access.redhat.com/security/cve/CVE-2026-28380
access.redhat.com/security/cve/CVE-2026-33381
access.redhat.com/security/cve/CVE-2026-28376
access.redhat.com/security/cve/CVE-2026-28379
access.redhat.com/security/cve/CVE-2026-28383
access.redhat.com/security/cve/CVE-2026-81872
access.redhat.com/security/cve/CVE-2026-92599
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_68821.json
bugzilla.redhat.com/show_bug.cgi?id=2477253
cve.org/CVERecord?id=CVE-2026-28374
nvd.nist.gov/vuln/detail/CVE-2026-28374
grafana.com/security/security-advisories/cve-2026-28374
bugzilla.redhat.com/show_bug.cgi?id=2477259
cve.org/CVERecord?id=CVE-2026-28376
nvd.nist.gov/vuln/detail/CVE-2026-28376
grafana.com/security/security-advisories/cve-2026-28376
bugzilla.redhat.com/show_bug.cgi?id=2477264
cve.org/CVERecord?id=CVE-2026-28379
nvd.nist.gov/vuln/detail/CVE-2026-28379
grafana.com/security/security-advisories/cve-2026-28379
bugzilla.redhat.com/show_bug.cgi?id=2477240
cve.org/CVERecord?id=CVE-2026-28380
nvd.nist.gov/vuln/detail/CVE-2026-28380
grafana.com/security/security-advisories/cve-2026-28380
bugzilla.redhat.com/show_bug.cgi?id=2477255
cve.org/CVERecord?id=CVE-2026-28383
nvd.nist.gov/vuln/detail/CVE-2026-28383
grafana.com/security/security-advisories/cve-2026-28383
bugzilla.redhat.com/show_bug.cgi?id=2477262
cve.org/CVERecord?id=CVE-2026-33376
nvd.nist.gov/vuln/detail/CVE-2026-33376
grafana.com/security/security-advisories/cve-2026-33376
bugzilla.redhat.com/show_bug.cgi?id=2477246
cve.org/CVERecord?id=CVE-2026-33377
nvd.nist.gov/vuln/detail/CVE-2026-33377
grafana.com/security/security-advisories/cve-2026-33377
bugzilla.redhat.com/show_bug.cgi?id=2477269
cve.org/CVERecord?id=CVE-2026-33378
nvd.nist.gov/vuln/detail/CVE-2026-33378
grafana.com/security/security-advisories/cve-2026-33378
bugzilla.redhat.com/show_bug.cgi?id=2477248
cve.org/CVERecord?id=CVE-2026-33380
nvd.nist.gov/vuln/detail/CVE-2026-33380
grafana.com/security/security-advisories/cve-2026-33380
bugzilla.redhat.com/show_bug.cgi?id=2477239
cve.org/CVERecord?id=CVE-2026-33381
nvd.nist.gov/vuln/detail/CVE-2026-33381
grafana.com/security/security-advisories/cve-2026-33381
bugzilla.redhat.com/show_bug.cgi?id=2535727
cve.org/CVERecord?id=CVE-2026-81872
nvd.nist.gov/vuln/detail/CVE-2026-81872
github.com/open-telemetry/opentelemetry-go/commit/ba71b09e6ed272e93a669aeaec1e98b1df4cc582
github.com/open-telemetry/opentelemetry-go/issues/6797
github.com/open-telemetry/opentelemetry-go/pull/8620
github.com/open-telemetry/opentelemetry-go/releases/tag/sdk/log/v0.21.0
github.com/open-telemetry/opentelemetry-go/security/advisories/GHSA-hjf4-fphr-2h65
bugzilla.redhat.com/show_bug.cgi?id=2538354
cve.org/CVERecord?id=CVE-2026-92599
nvd.nist.gov/vuln/detail/CVE-2026-92599
github.com/hapijs/joi/security/advisories/GHSA-6h2x-m376-mqjq
vulncheck.com/advisories/joi-before-17.13.7-and-18.2.6-redos-via-isodate
access.redhat.com/errata/RHSA-2026:71040
access.redhat.com/security/cve/CVE-2026-86472
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_71040.json
bugzilla.redhat.com/show_bug.cgi?id=2533679
cve.org/CVERecord?id=CVE-2026-86472
nvd.nist.gov/vuln/detail/CVE-2026-86472
cna.openjsf.org/security-advisories.html
github.com/fastify/fast-uri/security/advisories/GHSA-hrr3-gc8f-f4qj
access.redhat.com/errata/RHSA-2026:72498
access.redhat.com/security/cve/CVE-2026-93450
access.redhat.com/security/cve/CVE-2026-102422
access.redhat.com/security/cve/CVE-2026-63209
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_72498.json
bugzilla.redhat.com/show_bug.cgi?id=2543236
cve.org/CVERecord?id=CVE-2026-63209
nvd.nist.gov/vuln/detail/CVE-2026-63209
github.com/klauspost/compress/commit/539243b8823ee8f03e49969823d57c348c917536
github.com/klauspost/compress/releases/tag/v1.18.7
github.com/klauspost/compress/security/advisories/GHSA-259r-337f-4rfw
bugzilla.redhat.com/show_bug.cgi?id=2538979
cve.org/CVERecord?id=CVE-2026-93450
nvd.nist.gov/vuln/detail/CVE-2026-93450
github.com/go-openapi/swag
github.com/go-openapi/swag/blob/v0.27.0/jsonutils/adapters/stdlib/json/adapter.go
github.com/go-openapi/swag/blob/v0.27.0/jsonutils/adapters/stdlib/json/ordered_map.go
github.com/go-openapi/swag/commit/0c24346ced59a25811e8694a915e7131d25ccb0e
github.com/go-openapi/swag/security/advisories/GHSA-xh24-9qpg-8w28
vulncheck.com/advisories/go-openapi-swag-jsonutils-before-0.27.1-uncontrolled-recursion-in-ordered-json-marshal-and-unmarshal
bugzilla.redhat.com/show_bug.cgi?id=2542933
cve.org/CVERecord?id=CVE-2026-102422
nvd.nist.gov/vuln/detail/CVE-2026-102422
github.com/ljharb/shell-quote
github.com/ljharb/shell-quote/commit/6002b2ed90c6b83095eb272b6b0adaf3a172b0bc
github.com/ljharb/shell-quote/security/advisories/GHSA-pqg4-j6r4-53mv
npmjs.com/package/shell-quote