CVE-2026-55772
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 39 - wyżej niż 39% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący kontrolujący klucze w danych wejściowych może spowodować błędną interpretację danych, prowadzącą do nieautoryzowanego dostępu.
Rekomendacja
Zaktualizuj CedarJava do wersji 2.3.6, 3.4.1, 4.9.0 lub nowszej.
Inne podatności w CedarJava
Zobacz wszystkie- CVE-2026-55773Wysokie
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.
- 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.
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 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. This vulnerability has been fixed in versions 2.3.6, 3.4.1, and 4.9.

