Skip to main content

CedarJava CVE-2026-55772

HIGH
Access of Resource Using Incompatible Type (Type Confusion) (CWE-843)
2026-06-19 https://github.com/cedar-policy/cedar-java GHSA-93g4-m6xv-cmvr
8.8
CVSS 3.1 · Vendor: https://github.com/cedar-policy/cedar-java
Share

Severity by source

Vendor (https://github.com/cedar-policy/cedar-java) PRIMARY
8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
6.8 MEDIUM

Network-reachable via integrating service (AV:N); AC:H because exploitation requires a specific integration pattern (user-controlled map keys) and a policy referencing it; PR:L for authenticated submitter; no direct availability impact.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (https://github.com/cedar-policy/cedar-java).

CVSS VectorVendor: https://github.com/cedar-policy/cedar-java

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Source Code Evidence Fetched
Jun 19, 2026 - 15:51 vuln.today
Analysis Generated
Jun 19, 2026 - 15:51 vuln.today

DescriptionCVE.org

Summary

CedarJava is an open source Java implementation of the Cedar policy language, used for fine-grained authorization decisions. Under certain circumstances, improper input handling could allow type confusion across the Java-Rust FFI boundary.

Impact

Record-to-Entity type confusion across the Java-Rust FFI boundary

CedarJava sends authorization requests to the Rust cedar-policy evaluator as JSON. The JSON protocol reserves magic single-key object shapes (__entity and __extn) for entity references and extension values. When serializing a CedarMap, there is no validation preventing these reserved keys from being used. If an integrating service builds a CedarMap from caller-supplied key/value data (such as request headers, user-defined metadata, or resource tags), an actor who controls those keys could cause the Rust evaluator to interpret a record as an entity reference.

This issue requires the integrating service to build a CedarMap where the an actor controls the keys, and a policy must reference that value in a when/unless clause.

Impacted versions:

< 4.9

Patches

Addressed in CedarJava version 2.3.6, 3.4.1, and 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

Enable schema-based request validation to catch type mismatches. Validate that user-controlled data does not contain reserved keys (__entity or __extn) before building CedarMap objects.

References

If you have any questions or comments about this advisory, we ask that you contact us directly via email to [cedar-policy-security@lists.cncf.io](mailto:cedar-policy-security@lists.cncf.io). Please do not create a public GitHub issue.

AnalysisAI

Type confusion in CedarJava versions prior to 2.3.6, 3.4.1, and 4.9 allows authenticated remote attackers to manipulate authorization decisions by injecting reserved JSON keys (__entity or __extn) into CedarMap objects built from attacker-controlled input. When an integrating service constructs a CedarMap from caller-supplied data such as headers, metadata, or resource tags, the Rust cedar-policy evaluator can be tricked into interpreting a record as an entity reference, undermining fine-grained authorization. No public exploit identified at time of analysis, but the CVSS 8.8 rating reflects high impact on confidentiality, integrity, and availability of authorization outcomes.

Technical ContextAI

CedarJava is the Java binding for the Cedar policy language (originally developed by AWS, now a CNCF project), used by services to express and evaluate fine-grained authorization policies. The Java layer marshals authorization requests to the underlying Rust cedar-policy evaluator over an FFI boundary using a JSON protocol that reserves magic single-key shapes - {"__entity": ...} for entity references and {"__extn": ...} for extension values - to distinguish typed values from plain records. The root cause maps to CWE-843 (Access of Resource Using Incompatible Type, i.e., type confusion): the CedarMap serialization performs no filtering of these reserved keys, so a record containing them is indistinguishable from an entity reference once decoded on the Rust side. The affected package is pkg:maven/com.cedarpolicy:cedar-java across the 2.x, 3.x, and 4.x release lines.

RemediationAI

Vendor-released patch: upgrade to CedarJava 2.3.6, 3.4.1, or 4.9.0 (or later) depending on which release line you run, per https://github.com/cedar-policy/cedar-java/security/advisories/GHSA-93g4-m6xv-cmvr. If immediate upgrade is not possible, two compensating controls are available: enable Cedar's schema-based request validation so that records flagged with __entity/__extn keys fail type checking before reaching the evaluator (trade-off: requires that you actually have a Cedar schema defined and that all entity types are declared, which not every deployment does), and add an explicit reject-list at the integration layer that strips or rejects any caller-supplied key beginning with __ before the data is fed into a CedarMap (trade-off: must be applied everywhere user data enters policy evaluation, easy to miss in tag/metadata pipelines). Any forked or vendored copies of cedar-java must independently pick up the fix.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

Share

CVE-2026-55772 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy