Executive brief
OpenFGA is an authorization engine used by developers to manage user permissions. When configured to use a MySQL database, the system may fail to distinguish between users with similar names that differ only by capitalization (e.g., 'Alice' vs 'alice'). This could lead to a user being incorrectly granted or denied access based on the permissions of a different account.
Technical details
An issue in OpenFGA's MySQL datastore implementation causes identifier columns (tuple, changelog, and authorization_model) to use case-insensitive comparisons. This occurs because the default MySQL collation treats values like 'user:Alice' and 'user:alice' as equivalent. An attacker with low privileges could potentially exploit this to receive authorization responses intended for a different, case-distinct user identity. The vulnerability is specific to MySQL deployments; Postgres and SQLite backends are unaffected. Version 1.18.0 fixes this by migrating identifier columns to use 'utf8mb4_bin' collation.
Affected products
- OpenFGA OpenFGA < 1.18.0
- OpenFGA openfga (helm-charts) < 0.3.9
Timeline
- 2026-06-17: patched: Version 1.18.0 and Helm chart 0.3.9 released
- 2026-06-17: advisory: GitHub Security Advisory GHSA-cf98-j28v-49v6 published
- 2026-07-09: disclosed: CVE-2026-55170 published to NVD
References
- https://github.com/openfga/helm-charts/commit/96d5517a2693ff5def451dee7d6b9d1baeb281f8
- https://github.com/openfga/helm-charts/releases/tag/openfga-0.3.9
- https://github.com/openfga/openfga/commit/a2e0dbefc3e01a95c785f81a3563bc6571b08b11
- https://github.com/openfga/openfga/releases/tag/v1.18.0
- https://github.com/openfga/openfga/security/advisories/GHSA-cf98-j28v-49v6