CVE-2026-55773
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
W bibliotece CedarJava przed wersjami 2.3.6, 3.4.1 i 4.9.0 stwierdzono podatność na wstrzykiwanie wyrażeń Cedar. Metoda toCedarExpr() nie odpowiednio zabezpiecza znaków specjalnych, co może pozwolić atakującemu na wstrzyknięcie dowolnych wyrażeń polityki.
Ocena ryzyka
Ryzyko polega na możliwości ominięcia kontroli dostępu poprzez wstrzyknięcie wyrażeń takich jak || true, co może sprawić, że polityka zezwalająca stanie się bezwarunkowa, lub && false, co może zablokować działanie polityki zakazującej.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę CedarJava do wersji 2.3.6, 3.4.1 lub 4.9.0. Jeśli aktualizacja nie jest możliwa, należy unikać używania metody toCedarExpr() z danymi pochodzącymi od użytkownika.
Inne podatności w CedarJava
Zobacz wszystkie- CVE-2026-55771Wysokie
W bibliotece CedarJava w wersjach przed 4.9.0 metoda EntityIdentifier.equals() zawiera odwróconą logikę dla porównań z null i z samym sobą, co prowadzi do nieprawidłowych wyników równości. Problem nie wpływa na decyzje autoryzacyjne Cedar, ale może dotyczyć integratorów wykonujących własne porównania identyfikatorów encji.
- CVE-2026-55772Wysokie
CedarJava przed wersjami 2.3.6, 3.4.1 i 4.9.0 zawiera podatność polegającą na nieprawidłowym przetwarzaniu danych wejściowych, która może prowadzić do pomylenia typu Record-to-Entity przez granicę FFI Java-Rust. CedarJava wysyła żądania autoryzacji do ewaluatora Rust cedar-policy jako JSON. Protokół JSON rezerwuje magiczne kształty obiektów z pojedynczym kluczem (__entity i __extn) dla referencji encji i wartości rozszerzeń. Podczas serializacji CedarMap nie ma walidacji zapobiegającej użyciu tych zastrzeżonych kluczy. Jeśli integrująca usługa buduje CedarMap z danych klucz/wartość dostarczonych przez wywołującego (takich jak nagłówki żądań, metadane zdefiniowane przez użytkownika lub tagi zasobów), osoba kontrolująca te klucze może spowodować, że ewaluator Rust zinterpretuje rekord jako referencję encji. Podatność została naprawiona w wersjach 2.3.6, 3.4.1 i 4.9.
Oryginalny opis (angielski, źródło NVD)
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.

