CVE-2026-55170: OpenFGA MySQL Case-Sensitivity Authorization Bypass
OpenFGA, an authorization engine used by developers to manage access control, has a case-sensitivity flaw when running on MySQL databases. Prior to version 1.18.0, the system incorrectly treats distinct user identifiers like 'user:Alice' and 'user:alice' as the same, leading to authorization decisions being applied interchangeably. An authenticated user could exploit this to gain access permissions intended for a different user if naming conventions differ only in capitalization. The issue affects how the system stores and retrieves tuples (permission rules), changelogs, and authorization models from the database.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 5.4 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
- Weaknesses (CWE)
- CWE-178
- Affected products
- 2 configuration(s)
- Published / Modified
- 2026-07-09 / 2026-07-14
NVD description (verbatim)
OpenFGA is an authorization/permission engine built for developers. Prior to 1.18.0, when MySQL is being used as the datastore and authorization decisions rely on case-sensitive user strings, the tuple, changelog, and authorization_model identifier columns can compare case-distinct values such as user:Alice and user:alice as equivalent, causing two distinct check requests to return the same response. This issue is fixed in 1.18.0.
5 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-55170 stems from case-insensitive string comparison in OpenFGA's MySQL datastore implementation. The vulnerability resides in how identifier columns for tuples, changelogs, and authorization_model entries are compared during lookups. MySQL's default collation behavior treats 'Alice' and 'alice' as equivalent matches, causing the authorization engine to return identical responses for distinct principals. This violates the expected case-sensitive semantics when authorization policies explicitly reference different user strings. The flaw is confined to MySQL deployments; other datastores (PostgreSQL, etc.) with case-sensitive collations are unaffected. The issue requires the attacker to be authenticated and to have crafted permission policies that rely on case-sensitive user string differentiation.
Business impact
Organizations using OpenFGA with MySQL risk authorization bypass scenarios where permission inheritance or denial rules intended for one user account leak to accounts with identical names differing only in case. This creates a compliance exposure if access control decisions are logged or audited separately per user identity but actually applied interchangeably. The impact scales with reliance on case-sensitive naming conventions for role-based or attribute-based access control. For applications managing sensitive operations—finance, healthcare, multi-tenant SaaS—this can undermine the separation of duties and audit trail integrity. Remediation is straightforward via a patch, but the window prior to detection could leave systems in a compromised authorization state.
Affected systems
OpenFGA versions prior to 1.18.0 using MySQL as the datastore are affected. This includes deployments of the core OpenFGA software and instances deployed via the OpenFGA Helm charts. Other storage backends (PostgreSQL, in-memory stores, or other databases with case-sensitive collation by default) do not exhibit this vulnerability. Affected organizations should verify their datastore configuration and OpenFGA version to determine exposure.
Exploitability
The vulnerability requires authentication and knowledge of a target user's identity plus an alternate casing variant of that identity. An authenticated user cannot directly observe authorization decisions for other users; they must either be in the same authorization domain or have prior intelligence about naming patterns. The exploit path is limited to authenticated contexts and does not propagate unauthenticated attacks. Practical exploitation depends on organizational naming practices—strict lowercase or uppercase conventions reduce risk, while mixed-case identifiers increase exposure. The CVSS score of 5.4 reflects these constraints: network accessibility, low attack complexity, and requirement for authentication, balanced against confidentiality and integrity impact.
Remediation
Upgrade OpenFGA to version 1.18.0 or later. This release corrects the case-sensitivity handling in MySQL identifier comparisons. For organizations unable to upgrade immediately, consider enforcing a strict naming convention (all lowercase or all uppercase) for user identifiers to eliminate case-variant collisions, though this is a compensating control and not a substitute for patching. Review authorization policies and audit logs for evidence of cross-user authorization leakage prior to remediation.
Patch guidance
Deploy OpenFGA 1.18.0 or newer in your environment. If using Helm charts, verify that the chart version pulls the patched OpenFGA image. Test the upgrade in a staging environment to confirm that case-sensitive authorization semantics are restored—specifically, verify that authorization checks for 'user:Alice' and 'user:alice' return distinct responses if policies differ. Rollback procedures should be documented in case of integration issues. No data migration is required; the fix is application-layer logic correction.
Detection guidance
Audit OpenFGA deployment version by running 'openfga --version' or checking container image tags. Query your MySQL database to identify cases where authorization tuples, changelogs, or authorization_model entries with case-distinct identifiers exist (e.g., SELECT DISTINCT identifier FROM tuples WHERE LOWER(identifier) = UPPER(identifier) is false). Review authorization decision logs for anomalies—identical responses to check requests from different user principals. If your organization enforces strict lowercase naming for all identifiers, the exposure is minimal; however, verify this across all authorization policies and user provisioning workflows.
Why prioritize this
This vulnerability warrants prompt but measured attention. The CVSS score of 5.4 (MEDIUM) reflects bounded exploitability and authentication requirement, but the integrity and confidentiality impact are real in multi-tenant or role-separated environments. It is not listed on the KEV catalog, indicating limited evidence of active exploitation in the wild. However, the fix is simple and low-risk, making remediation a sound investment. Prioritize patching for systems handling sensitive access control decisions or multi-tenant scenarios; lower-risk deployments can follow standard change management windows.
Risk score, explained
CVSS 3.1 score of 5.4 is assigned as MEDIUM. Attack Vector (N) reflects network accessibility of OpenFGA endpoints; Attack Complexity (L) captures straightforward case-variant exploitation; Privileges Required (L) mandates authentication; User Interaction (N) indicates no social engineering or user action needed. Confidentiality Impact (L) and Integrity Impact (L) reflect potential unauthorized information disclosure and policy subversion respectively; Availability Impact (N) means the service remains operational. The score appropriately penalizes the authentication requirement and limits on discoverability, but credits the authorization bypass potential.
Frequently asked questions
Does this affect my OpenFGA deployment if I use PostgreSQL instead of MySQL?
No. PostgreSQL and other databases with case-sensitive string collation by default are not affected by this vulnerability. The issue is specific to MySQL's case-insensitive collation behavior. Verify your datastore configuration if you are uncertain.
Can I work around this without upgrading to 1.18.0?
A compensating control is to enforce a strict naming convention (all lowercase or all uppercase) for all user identifiers in your authorization policies and user provisioning system. This eliminates case-variant collisions but does not fix the underlying logic flaw. Upgrade to 1.18.0 as soon as feasible for proper remediation.
Will upgrading to 1.18.0 require me to re-create my authorization policies or data?
No. Version 1.18.0 is an application-layer fix that corrects case-sensitivity logic without requiring data migration or policy recreation. However, test in staging to ensure authorization semantics match your expectations.
Is this vulnerability being actively exploited in the wild?
No. The vulnerability is not listed on the CISA KEV catalog, indicating no documented evidence of active exploitation. However, the low barrier to exploitation in authenticated contexts means organizations should not delay patching indefinitely.
This analysis is based on available vulnerability data as of the publication date and does not constitute security advice for your specific infrastructure. Always validate vendor advisories and test patches in non-production environments before deployment. The CVSS score and vulnerability details reflect the published CVE record; organizations should assess risk within their own threat model and operational context. SEC.co provides this information for situational awareness and does not warrant the accuracy or completeness of third-party vendor disclosures. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-58057MEDIUMFlowise Windows Environment Variable Bypass Leading to Code Execution
- CVE-2026-14617LOWLow-Severity Case-Sensitivity Flaw in NousResearch hermes-agent Streaming Filter
- CVE-2026-44367LOWKlaw Username Case Sensitivity DoS and Account Lockout
- CVE-2026-45062HIGHFrankenPHP Remote Code Execution via Non-ASCII Path Handling
- CVE-2026-45135HIGHCaddy FastCGI Path Splitting Remote Code Execution
- CVE-2026-46392HIGHHAX CMS PHP Case-Insensitive File Upload XSS Bypass
- CVE-2026-53721HIGHNuxt Route-Rule Middleware Bypass via Case-Sensitivity Mismatch
- CVE-2026-54528HIGHJupyterLab Git Path-Casing Bypass in Excluded Paths (CVSS 7.1)