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
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to integrating service
  2. Delivery
    Inject `__entity` key via header/tag/metadata
  3. Exploit
    Service serializes CedarMap with reserved key
  4. Execution
    Rust evaluator misinterprets record as entity reference
  5. Persist
    Policy when/unless clause evaluates attacker-chosen entity
  6. Impact
    Bypass authorization decision

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Type safety enforcement
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a specific application pattern: the integrating service must construct a CedarMap whose KEYS are populated from attacker-controlled input (request headers, user-defined metadata, resource tags), AND a Cedar policy must reference the resulting map value inside a when or unless clause. The attacker must be able to reach the service's authorization-evaluating endpoint and supply at least the literal key string __entity or __extn with a crafted value. Limiting factors: services that only allow user-controlled VALUES (not keys), services that enforce a Cedar schema with declared entity types, and services that sanitize __-prefixed keys are not exploitable. The CVSS PR:L reflects that some authenticated request to the integrating service is typically needed to inject the malicious key.

Impact

The CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H vector (8.8) treats this as a network-accessible, low-complexity, low-privilege flaw with high CIA impact - but that scoring assumes the typical deployment in which CedarJava sits behind a service that exposes Cedar evaluation to remote callers. In practice exploitability is gated by two non-trivial preconditions stated explicitly in the advisory: (1) the integrating service must construct a CedarMap whose KEYS (not just values) come from untrusted input, and (2) a policy must reference that map's value in a when/unless clause. EPSS and KEV data are absent from the input, and no POC is referenced; this is consistent with a freshly disclosed advisory rather than active exploitation. The realistic risk is therefore high for services that surface user-controlled headers/metadata/tags directly into Cedar entities - likely a meaningful subset of authorization gateways - but low for services that strictly schema-validate their inputs before evaluation.

Exploit ScenarioDerived

An attacker submits an HTTP request to a service that uses CedarJava for authorization, setting a custom header or resource tag whose key is literally __entity and whose value is a JSON object identifying a privileged principal or resource. The service serializes that user-controlled key/value pair into a CedarMap and includes it in the authorization request; the Rust evaluator decodes the record as an entity reference, and a policy clause like when { principal.tags.role == ... } evaluates against the attacker-chosen entity instead of the intended record value, granting unintended access.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 19, 2026

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.

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.

Affected Packages

maven com.cedarpolicy:cedar-java fix: 2.3.6, 3.4.1, 4.9.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in maven

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

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.

Know when Java gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

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

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.

Executive ViewAI

Why It Matters

CedarJava contains a type confusion vulnerability affecting authorization controls that allows authenticated attackers to bypass access restrictions when authorization objects are built from user-supplied inputs such as headers or metadata. This directly threatens organizations' ability to control who accesses sensitive data and system functions, with a high severity rating reflecting significant impact on confidentiality and integrity. Services using CedarJava for fine-grained access control require immediate assessment and mitigation.

Business Impact: High
Compensating Controls

Implement input validation to block reserved JSON keys ('__entity', '__extn') in CedarMap construction from untrusted sources; apply least-privilege access controls limiting authenticated user permissions on authorization-critical functions; establish logging and alerting for injection attempts; segregate trusted from untrusted data sources in authorization workflows.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Threat Intel
1
1 source
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Affected Products (CPE)CVE.org

pkg:maven/com.cedarpolicy:cedar-java
pkg:maven/com.cedarpolicy:cedar-java
pkg:maven/com.cedarpolicy:cedar-java

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

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