CVE-2025-25196
NoneOpenFGA Authorization Bypass
CVSS
—
EPSS
0.4%
Published
Feb 19, 2025
CISA due date
—
Cloudanix analysis
Some older versions of this authorization system could let certain requests see data they were never meant to access under specific setup conditions.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- Application
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Authorization bypass in Check and ListObjects APIs when a model relation is directly assignable to both type-bound public access and a userset of the same type, a public access tuple exists without a matching userset tuple on the object, and the Check user is a userset matching the public tuple type.
Why it matters to the business
Attackers may gain unauthorized visibility into objects or relationships they should not access, potentially exposing sensitive authorization decisions across deployments using affected OpenFGA versions.
How an attack unfolds
An attacker identifies an affected model configuration and issues crafted Check or ListObjects requests that trigger the flawed evaluation path, bypassing intended access controls without requiring direct tuple manipulation.
How to fix it
Upgrade OpenFGA to v1.8.5 or later. For source builds use commit a77b33972c86b1c4ecb772bbcdcd4294af458469. Bitnami hubble-ui users should update to version 1.12.14 or newer.
How to confirm the fix worked
Confirm running version is 1.8.5 or newer, then test Check/ListObjects calls against models containing the affected relation pattern to verify correct denial behavior.
Typical attack path
- Identify OpenFGA instance running v1.8.4 or earlier
- Locate or infer a model with the specified public+userset relation condition
- Issue Check or ListObjects API calls using a userset user that matches the public tuple type
- Receive authorization results that incorrectly grant access
How to detect it
Search OpenFGA request logs for Check and ListObjects calls that include userset users against models with public access tuples; correlate with authorization decision outcomes that appear inconsistent with expected policy.
What your security team should do
- Immediately upgrade all OpenFGA deployments to the fixed versions listed
- Audit authorization models for relations directly assignable to both public access and usersets of matching type
- Review application logs for historical Check and ListObjects calls that may indicate prior exposure
The record
Overview OpenFGA v1.8.4 or previous (Helm chart < openfga-0.2.22, docker < v.1.8.5) are vulnerable to authorization bypass when certain Check and ListObject calls are executed. Am I Affected? If you are using OpenFGA v1.8.4 or previous, specifically under the following conditions, you are affected by this authorization bypass vulnerability: - Calling Check API or ListObjects with a model that has a relation [directly assignable](https://openfga.dev/docs/concepts#what-is-a-directly-related-user-type) to both [public access](https://openfga.dev/docs/concepts#what-is-type-bound-public-access) AND [userset](https://openfga.dev/docs/concepts#what-is-a-user) with the [same type](https://openfga.dev/docs/concepts#what-is-a-type), and - A type bound public access tuple is assigned to an object, and - userset tuple is not assigned to the same object, and - Check request's user field is a userset that has the same type as the type bound public access tuple's user type Fix Upgrade to v1.8.5. This upgrade is backwards compatible.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/openfga/openfga | 0 | 1.8.5 |
| Chainguard | grafana-11.2 | 0 | 11.2.10.01-r7 |
| Chainguard | grafana-11.2-oci-compat | 0 | 11.2.10.01-r7 |
| Chainguard | grafana-11.3 | 0 | 11.3.9-r5 |
| Chainguard | grafana-11.3-oci-compat | 0 | 11.3.9-r5 |
| Chainguard | grafana-11.4 | 0 | 11.4.8-r2 |
| Chainguard | grafana-11.4-oci-compat | 0 | 11.4.8-r2 |
| Chainguard | grafana-11.5 | 0 | 11.5.2-r1 |
| Chainguard | grafana-11.5-oci-compat | 0 | 11.5.2-r1 |
| Chainguard | grafana-fips-11.2 | 0 | 11.2.10.01-r6 |
| Chainguard | grafana-fips-11.2-oci-compat | 0 | 11.2.10.01-r6 |
| Chainguard | grafana-fips-11.3 | 0 | 11.3.9-r4 |
| Chainguard | grafana-fips-11.3-oci-compat | 0 | 11.3.9-r4 |
| Chainguard | grafana-fips-11.4 | 0 | 11.4.8-r2 |
| Chainguard | grafana-fips-11.4-oci-compat | 0 | 11.4.8-r2 |
| Chainguard | grafana-fips-11.5 | 0 | 11.5.10-r0 |
| Chainguard | grafana-fips-11.5-oci-compat | 0 | 11.5.10-r0 |
| Wolfi | grafana-11.2 | 0 | 11.2.10.01-r7 |
| Wolfi | grafana-11.2-oci-compat | 0 | 11.2.10.01-r7 |
| Wolfi | grafana-11.3 | 0 | 11.3.9-r5 |
| Wolfi | grafana-11.3-oci-compat | 0 | 11.3.9-r5 |
| Wolfi | grafana-11.4 | 0 | 11.4.8-r2 |
| Wolfi | grafana-11.4-oci-compat | 0 | 11.4.8-r2 |
| Wolfi | grafana-11.5 | 0 | 11.5.2-r1 |
| Wolfi | grafana-11.5-oci-compat | 0 | 11.5.2-r1 |
| openSUSE:Tumbleweed | govulncheck-vulndb | 0 | 0.0.20250312T181707-1.1 |
Related vulnerabilities
- CVE-2026-24851 OpenFGA is a high-performance and flexible authorization/permission engine built for… Also affects github.com/openfga/openfga
- CVE-2025-64751 OpenFGA Improper Policy Enforcement Also affects github.com/openfga/openfga
- CVE-2025-46331 OpenFGA Authorization Bypass Also affects github.com/openfga/openfga
- CVE-2024-56323 OpenFGA Authorization Bypass Also affects github.com/openfga/openfga
- CVE-2025-11065 A flaw was found in github.com/go-viper/mapstructure/v2, in the field processing… Also affects grafana-11.2
- CVE-2025-30153 kin-openapi is a Go project for handling OpenAPI files. Also affects grafana-11.2
- CVE-2024-11741 Grafana is an open-source platform for monitoring and observability. Also affects grafana-11.2
- CVE-2024-45339 When logs are written to a widely-writable directory (the default), an unprivileged… Also affects grafana-11.2