CVE-2026-55773
Deferred Deferred - Pending Action

CedarJava Cedar Expression Injection via toCedarExpr

Vulnerability report for CVE-2026-55773, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-13

Last updated on: 2026-07-15

Assigner: GitHub, Inc.

Description

CedarJava is an open source Java implementation of the Cedar policy language, used for fine-grained authorization decisions. In versions prior to 2.3.6, 3.4.1 and 4.9.0, under certain circumstances, improper input handling could allow 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. This vulnerability has been fixed in versions 2.3.6, 3.4.1, and 4.9.0.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-13
Last Modified
2026-07-15
Generated
2026-08-03
AI Q&A
2026-07-14
EPSS Evaluated
2026-08-01
NVD

Affected Vendors & Products

Showing 9 associated CPEs
Vendor Product Version / Range
cedar-policy cedarjava to 2.3.6 (exc)
cedar-policy cedarjava to 3.4.1 (exc)
cedar-policy cedarjava to 4.9.0 (exc)
cedar-policy cedarjava 2.3.6
cedar-policy cedarjava 3.4.1
cedar-policy cedarjava 4.9.0
cedarjava cedarjava to 2.3.6 (exc)
cedarjava cedarjava to 3.4.1 (exc)
cedarjava cedarjava to 4.9.0 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-94 The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-55773 is a vulnerability in CedarJava, an open-source Java implementation of the Cedar policy language used for fine-grained authorization decisions.

The vulnerability arises from improper input handling in the toCedarExpr() method. This method does not escape special characters like quotes (") or backslashes (\), which are used when converting values to Cedar source code.

If an integrator uses toCedarExpr() to dynamically build policy text at runtime from user-controlled input, an attacker could inject arbitrary Cedar expressions. For example, injecting || true into a permit clause could make it unconditionally true, or injecting && false into a forbid clause could prevent it from triggering.

This issue affects CedarJava versions prior to 2.3.6, 3.4.1, and 4.9.0. The vulnerability has been fixed in these versions.

Detection Guidance

Detecting this vulnerability requires identifying whether your system uses CedarJava versions prior to 2.3.6, 3.4.1, or 4.9.0 and if the toCedarExpr() method is being used to dynamically construct policy text from user-controlled input.

  • Check the version of CedarJava in your dependencies. For Maven projects, inspect the pom.xml file for the cedarjava dependency version. Look for versions earlier than 2.3.6, 3.4.1, or 4.9.0.
  • Search your codebase for usage of the toCedarExpr() method. This can be done using grep or a similar tool: grep -r "toCedarExpr()" /path/to/your/code.
  • Review the input sources for toCedarExpr() calls to determine if they include user-controlled or untrusted input. If such input is used without proper sanitization or validation, the system may be vulnerable.
  • Monitor Cedar policy evaluation logs for unexpected or anomalous policy behavior, such as permit clauses that always evaluate to true or forbid clauses that never trigger.
Impact Analysis

If you are using CedarJava in your application for authorization decisions, this vulnerability could have significant impacts.

  • An attacker could manipulate authorization policies by injecting malicious Cedar expressions, leading to unauthorized access to sensitive data or functionality.
  • The vulnerability could allow an attacker to bypass security controls, such as making a permit clause unconditionally true or disabling a forbid clause.
  • This could result in a loss of confidentiality, integrity, and availability of your system, as indicated by the high CVSS base score of 8.8.

The impact is particularly severe if your application dynamically constructs policy text from user-controlled input using the toCedarExpr() method.

Compliance Impact

This vulnerability could affect compliance with several common standards and regulations, depending on the nature of your application and the data it handles.

  • GDPR (General Data Protection Regulation): If the vulnerability leads to unauthorized access to personal data, it could result in a data breach. GDPR requires organizations to implement appropriate technical measures to protect personal data, and a failure to do so could lead to significant fines and legal consequences.
  • HIPAA (Health Insurance Portability and Accountability Act): For applications handling protected health information (PHI), this vulnerability could lead to unauthorized access or disclosure of PHI. HIPAA requires safeguards to ensure the confidentiality, integrity, and availability of PHI, and non-compliance could result in penalties.
  • Other standards like PCI DSS (Payment Card Industry Data Security Standard) could also be impacted if the vulnerability affects systems processing payment card data, leading to unauthorized access or data breaches.

To maintain compliance, it is critical to address this vulnerability by upgrading to a patched version of CedarJava and ensuring that all user-controlled input is properly validated or sanitized before being used in policy construction.

Mitigation Strategies

To mitigate this vulnerability, follow these immediate steps:

  • Upgrade CedarJava to the latest patched version. Use version 2.3.6, 3.4.1, 4.9.0, or later to resolve the issue. For Maven projects, update the dependency in your pom.xml file.
  • If upgrading is not immediately possible, avoid using the toCedarExpr() method with user-controlled or untrusted input. Replace dynamic policy construction with static policy definitions where feasible.
  • If dynamic policy construction is necessary, ensure all user-supplied input passed to toCedarExpr() is thoroughly validated and sanitized. Escape special characters such as quotes and backslashes before processing.
  • Review and audit all existing Cedar policies for signs of injection, such as unexpected logical operators (e.g., || true or && false) in permit or forbid clauses.
  • Implement strict input validation and output encoding practices for all Cedar policy-related operations to prevent similar injection vulnerabilities in the future.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-55773. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart