🔍 CVE-2026-55773

8.8
CVSS Score
HIGH
2026-07-13
2026-10-24 22:10
✅ 완료

🇰🇷 한글 설명

CedarJava는 세밀한 인가 결정을 위해 사용되는 Cedar 정책 언어의 오픈소스 Java 구현체입니다. 2.3.6, 3.4.1, 4.9.0 이전 버전에서는 toCedarExpr() 메서드가 특수문자(" 및 \)를 이스케이프하지 않아, 런타임에 사용자 입력으로 정책 텍스트를 구성할 경우 Cedar 표현식 주입이 가능합니다. 이 취약점은 2.3.6, 3.4.1, 4.9.0 버전에서 수정되었습니다.

💡 쉬운 설명

정책을 만들 때 사용자가 입력한 값을 그대로 넣으면, 공격자가 허용/차단 규칙을 바꿀 수 있는 문제입니다. 예를 들어 차단 규칙이 무력화되거나 모든 사용자에게 접근이 허용될 수 있습니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

CedarJava 2.3.6 미만, 3.4.1 미만, 4.9.0 미만 버전을 사용하며 toCedarExpr()로 사용자 입력 기반 정책을 생성하는 시스템

⚔️ 공격 벡터

사용자 입력값에 ' || true' 또는 ' && false' 같은 Cedar 표현식을 삽입하여 permit 조건을 무조건 참으로, forbid 조건을 무력화

🛡️ 대응 방법

CedarJava를 2.3.6, 3.4.1, 4.9.0 이상으로 업그레이드하고, 사용자 입력을 정책 텍스트에 직접 삽입하지 않도록 구조화된 정책 구성 방식으로 변경

🔧 검증 코드

출력된 의존성 버전이 2.3.6 미만(2.x), 3.4.1 미만(3.x), 4.9.0 미만(4.x)이면 취약하며, 해당 버전 이상이면 수정된 버전입니다.

Shell / Script
grep -rE 'cedar-java|cedarjava' --include=pom.xml --include=build.gradle --include=build.gradle.kts . 2>/dev/null

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Magento Open Source