CedarJava CVE-2026-55773
HIGHAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to integrating app
-
DeliverySubmit value with quote/backslash payload
-
ExploitApp calls toCedarExpr() unescaped
-
ExecutionInjected Cedar fragment alters policy clause
-
PersistCedar engine grants unintended permit
-
ImpactAttacker accesses protected resource
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The integrating application must call toCedarExpr() on Cedar Value types and concatenate the result into Cedar policy source text at runtime, with at least one of the interpolated values coming from attacker-controlled input (e.g., HTTP request fields, tenant metadata). Exploitation is limited by this non-default integration pattern: applications that load static .cedar files, use Cedar's typed entity/value APIs without string assembly, or that already sanitize/allowlist user input do not reach the vulnerable code path. The attacker also needs whatever access the surrounding application requires to influence the injected field (the CVSS PR:L implies some authenticated context), and the injectable payload must syntactically fit the surrounding permit/forbid/when clause. |
| Impact | The vendor-assigned CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, 8.8) overstates real-world risk for most consumers: exploitability is fully gated on the integrator pattern of feeding user-controlled values into toCedarExpr() to build policy text at runtime, which is an unusual integration choice rather than the library's default usage. There is no EPSS score, no CISA KEV listing, and no POC referenced, so this falls under 'no public exploit identified at time of analysis.' The primary impact is integrity of authorization decisions (C:H/A:H are debatable since injected Cedar typically toggles permit/forbid rather than disclosing data or causing DoS); teams using CedarJava only for static or schema-validated policies are not realistically exposed, while teams that compose policies from request-time user input should treat this as high priority. |
| Exploit ScenarioDerived | An application uses CedarJava to dynamically assemble a permit policy by interpolating a user-supplied attribute (for example, a tenant-supplied display name) into a when-clause via toCedarExpr(). The attacker submits a value such as foo" || true || "foo, which, after unescaped serialization, terminates the original string literal and appends '|| true' to the condition, causing the permit clause to evaluate true unconditionally and granting access the policy was meant to deny. No public POC is referenced, but the technique mirrors classic string-context code injection. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 19, 2026
Cedar policy injection in CedarJava (com.cedarpolicy:cedar-java) versions below 2.3.6, 3.4.1, and 4.9.0 allows attackers to alter authorization outcomes by smuggling Cedar expressions through unescaped string values. The flaw is in toCedarExpr() on Cedar Value types, which fails to escape quote and backslash characters when serializing user-controlled values into policy text. No public exploit identified at time of analysis, but the integrity impact is severe because injected fragments like '|| true' can neutralize permit/forbid logic in fine-grained authorization decisions.
RemediationAI
Vendor-released patches are available: upgrade com.cedarpolicy:cedar-java to 2.3.6, 3.4.1, or 4.9.0 (or later) depending on the release line you track, per GHSA-qmch-v2q9-wg4p (https://github.com/cedar-policy/cedar-java/security/advisories/GHSA-qmch-v2q9-wg4p). If immediate upgrade is not possible, stop building policy text at runtime from user-controlled values and instead use parameterized Cedar entity/value APIs or pre-authored policies referenced by ID; where toCedarExpr() must be used on untrusted input, apply strict allowlist validation that rejects the quote (") and backslash (\) characters and any other Cedar metacharacters before passing values in, accepting the side effect that legitimate inputs containing those characters will be refused. Audit forked or vendored copies of cedar-java for the same toCedarExpr() code path and port the upstream fix.
Affected Packages
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 official Java binding for AWS/CNCF's Cedar policy language, used by applications to make fine-grained authorization decisions (permit/forbid clauses with when-conditions). The root cause is CWE-94 (Improper Control of Generation of Code, i.e., code injection): the toCedarExpr() helper that converts Cedar Value objects back into Cedar source code does not escape the string-delimiter (") or escape character (\), so a value containing those characters breaks out of its intended string literal and is reparsed as Cedar syntax. Affected Maven coordinates per the GHSA are com.cedarpolicy:cedar-java in the 2.x, 3.x (>= 3.1.2), and 4.x lines, all below the fixed releases 2.3.6, 3.4.1, and 4.9.0.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network reachable but exploitable only when integrator uses toCedarExpr() on user input (AC:H); requires app-level auth (PR:L); primary impact is authorization integrity, with limited confidentiality and no DoS.
Primary rating from Vendor (https://github.com/cedar-policy/cedar-java).
CVSS VectorVendor: https://github.com/cedar-policy/cedar-java
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 policy injection.
Impact
Cedar-expression injection via unescaped toCedarExpr()
The toCedarExpr() method on Cedar Value types does not escape special characters (" or \) when converting values to Cedar source code. If an integrator uses toCedarExpr() to build policy text at runtime from user-controlled values, an actor could inject arbitrary Cedar expressions. For example, injecting || true into a permit ... when { ... } clause could make the permit unconditional, or injecting && false into a forbid clause could prevent the forbid from triggering.
This issue requires the integrator to use toCedarExpr() to build policy text at runtime from user-controlled input.
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
Validate and sanitize all user-supplied input before passing it to toCedarExpr(). Avoid building policy text at runtime from user-controlled values.
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.
Articles & Coverage 1
Executive ViewAI
CedarJava authorization engine contains a high-severity policy injection vulnerability (CVE-2026-55773, CVSS 8.8) that allows attackers to bypass access controls by injecting expressions through unescaped values. Any system using affected versions risks unauthorized access to protected resources; the integrity of fine-grained access decisions is directly compromised.
No vendor-released patch identified at time of analysis. Implement strict input validation and escaping for all values passed to policy serialization; restrict policy authorship to trusted personnel with change approval workflows; enable immutable audit logging of all policy modifications; deploy redundant authorization checks independent of Cedar policies; monitor policy evaluation logs for injection indicators such as expression syntax in data values.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Affected Products (CPE)CVE.org
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
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
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
GHSA-qmch-v2q9-wg4p
NVD
CVE.org
EPSS
Exploit-DB