CVE-2026-55771
CedarJava has policy injection, type confusion, and incorrect equality comparison vulnerabilities
CedarJava is an open source Java implementation of the Cedar policy language, used for fine-grained authorization decisions. In versions prior to 4.9.0, the EntityIdentifier.equals() has inverted null/self branches which could lead to incorrect equality comparisons. The EntityIdentifier.equals() method has inverted logic for null and self-reference checks, returning true for null comparisons and false for self-comparisons. This does not affect Cedar authorization decisions (computed in Rust from JSON), but could affect integrators who perform their own equality checks on entity identifiers. This issue has been fixed in version 4.9.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.8
CedarJava has policy injection, type confusion, and incorrect equality comparison vulnerabilities
CedarJava is an open source Java implementation of the Cedar policy language, used for fine-grained authorization decisions. In versions prior to 4.9.0, the EntityIdentifier.equals() has inverted null/self branches which could lead to incorrect equality comparisons. The EntityIdentifier.equals() method has inverted logic for null and self-reference checks, returning true for null comparisons and false for self-comparisons. This does not affect Cedar authorization decisions (computed in Rust from JSON), but could affect integrators who perform their own equality checks on entity identifiers. This issue has been fixed in version 4.9.0.
- Record
CVE-2026-55771- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94, CWE-697, CWE-843
- Updated
- 2026-11-02
EUVDEUVD-2026-43524
8.8
CedarJava is an open source Java implementation of the Cedar policy language, used for fine-grained authorization decisions. In versions prior to 4.9.0, the EntityIdentifier.equals() has inverted null/self branches which could lead to incorrect equality comparisons. The EntityIdentifier.equals() method has inverted logic for null and self-reference checks, returning true for null comparisons and false for self-comparisons. This does not affect Cedar authorization decisions (computed in Rust from JSON), but could affect integrators who perform their own equality checks on entity identifiers. This issue has been fixed in version 4.9.0.
- Record
EUVD-2026-43524- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-4r9r-4425-74p7
8.8
Cedar-Java has policy injection, type confusion, and incorrect equality comparison vulnerabilities
Summary
CedarJava is an open source Java implementation of the Cedar policy language, used for fine-grained authorization decisions. Under certain circumstances, it could lead to incorrect equality comparisons.
Impact
EntityIdentifier.equals() has inverted null/self branches
The EntityIdentifier.equals() method has inverted logic for null and self-reference checks, returning true for null comparisons and false for self-comparisons. This does not affect Cedar authorization decisions (computed in Rust from JSON), but could affect integrators who perform their own equality checks on entity identifiers.
Impacted versions:
< 4.9
Patches
It has been addressed in CedarJava version 4.9 and above. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.
Workarounds
Avoid relying on EntityIdentifier.equals() for security-sensitive comparisons until upgraded to version 4.9.
References
If you have any questions or comments about this advisory, Cedar asks that you contact us directly via email to [email protected]. Please do not create a public GitHub issue.
- Record
GHSA-4r9r-4425-74p7- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94, CWE-697, CWE-843
- Updated
- 2026-11-02
NVD
8.8
CedarJava is an open source Java implementation of the Cedar policy language, used for fine-grained authorization decisions. In versions prior to 4.9.0, the EntityIdentifier.equals() has inverted null/self branches which could lead to incorrect equality comparisons. The EntityIdentifier.equals() method has inverted logic for null and self-reference checks, returning true for null comparisons and false for self-comparisons. This does not affect Cedar authorization decisions (computed in Rust from JSON), but could affect integrators who perform their own equality checks on entity identifiers. This issue has been fixed in version 4.9.0.
- Record
CVE-2026-55771- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94, CWE-697, CWE-843
- Updated
- 2026-11-02
OSV
8.8
CedarJava has policy injection, type confusion, and incorrect equality comparison vulnerabilities
CedarJava is an open source Java implementation of the Cedar policy language, used for fine-grained authorization decisions. In versions prior to 4.9.0, the EntityIdentifier.equals() has inverted null/self branches which could lead to incorrect equality comparisons. The EntityIdentifier.equals() method has inverted logic for null and self-reference checks, returning true for null comparisons and false for self-comparisons. This does not affect Cedar authorization decisions (computed in Rust from JSON), but could affect integrators who perform their own equality checks on entity identifiers. This issue has been fixed in version 4.9.0.
- Record
CVE-2026-55771- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-697, CWE-843, CWE-94
- Updated
- 2026-11-02
OSVGHSA-4r9r-4425-74p7
8.8
Cedar-Java has policy injection, type confusion, and incorrect equality comparison vulnerabilities
Summary
CedarJava is an open source Java implementation of the Cedar policy language, used for fine-grained authorization decisions. Under certain circumstances, it could lead to incorrect equality comparisons.
Impact
EntityIdentifier.equals() has inverted null/self branches
The EntityIdentifier.equals() method has inverted logic for null and self-reference checks, returning true for null comparisons and false for self-comparisons. This does not affect Cedar authorization decisions (computed in Rust from JSON), but could affect integrators who perform their own equality checks on entity identifiers.
Impacted versions:
< 4.9
Patches
It has been addressed in CedarJava version 4.9 and above. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.
Workarounds
Avoid relying on EntityIdentifier.equals() for security-sensitive comparisons until upgraded to version 4.9.
References
If you have any questions or comments about this advisory, Cedar asks that you contact us directly via email to [email protected]. Please do not create a public GitHub issue.
- Record
GHSA-4r9r-4425-74p7- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-697, CWE-843, CWE-94
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
com.cedarpolicy:cedar-javaMaven |
before 2.3.6 | 2.3.6 |
com.cedarpolicy:cedar-javaMaven |
3.1.2 up to 3.4.1 | 3.4.1 |
com.cedarpolicy:cedar-javaMaven |
4.0.0 up to 4.9.0 | 4.9.0 |
com.cedarpolicy:cedar-javaMaven |
before 2.3.6, plus listed versions 2.32.3.32.3.42.3.5 |
2.3.6 |
com.cedarpolicy:cedar-javaMaven |
3.1.2 up to 3.4.1, plus listed versions 3.2.03.2.53.3.03.4.0 |
3.4.1 |
com.cedarpolicy:cedar-javaMaven |
4.0.0 up to 4.9.0, plus listed versions 4.1.04.2.14.2.24.2.34.2.44.3.04.3.14.8.0 |
4.9.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| 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-55771 is a high vulnerability (CVSS 8.8) in Cedar-policy Cedar-java, published July 13, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.57%, the 47th percentile. Fixed in com.cedarpolicy:cedar-java 2.3.6.