CVE-2026-77415
KrytyczneCVSS 9.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 49 - wyżej niż 49% wszystkich znanych CVE
Streszczenie
JSONata to język zapytań i transformacji JSON. Przed wersjami 1.8.8 i 2.2.1, specjalnie spreparowane wyrażenia JSONata mogły łączyć kilka słabości integralności obiektów, aby wykonać dowolny kod. Łańcuch mógł nadpisać $clone, aby mutować obiekty przez evaluateTransformExpression, ujawniać i dekonstruować funkcje JSONata lub lambdy przez $merge.*, zastępować proc.arguments.forEach używane przez applyProcedure oraz fałszować wewnętrzny stan lambda. Te prymitywy pozwalały atakującemu na dostęp do getterów prototypu, dostęp do prototypu i konstruktora oraz process.getBuiltinModule z child_process, wykonując kod z uprawnieniami procesu gospodarza. Problem naprawiono w wersjach 1.8.8 i 2.2.1.
Ocena ryzyka
Ryzyko obejmuje zdalne wykonanie kodu z uprawnieniami procesu gospodarza, co może prowadzić do pełnego przejęcia systemu, kradzieży danych i naruszenia bezpieczeństwa aplikacji.
Rekomendacja
Zaleca się aktualizację JSONata do wersji 1.8.8 lub 2.2.1 (lub nowszej), aby zapobiec wykorzystaniu łańcucha słabości prowadzących do wykonania kodu.
Inne podatności w JSONata
Zobacz wszystkie- CVE-2026-77414Krytyczne
JSONata to język zapytań i transformacji JSON. Przed wersjami 1.8.8 i 2.2.1, funkcja environment.lookup w src/jsonata.js używała omijalnego sprawdzenia hasOwnProperty. Spreparowane wyrażenia mogły użyć $hasOwnProperty, $spread, $string, dostępu do prototypu i $constructor, aby dotrzeć do prototypu obiektu i wywołać process.getBuiltinModule z child_process, wykonując dowolny kod z uprawnieniami procesu gospodarza. Problem naprawiono w wersjach 1.8.8 i 2.2.1.
- CVE-2026-77413Krytyczne
JSONata to język zapytań i transformacji JSON. Przed wersjami 1.8.8 i 2.2.0, funkcja lookup w src/functions.js nie miała sprawdzenia Object.prototype.hasOwnProperty i pozwalała spreparowanym wyrażeniom na dostęp do dziedziczonych członków prototypu. Atakujący, który może dostarczyć wyrażenie, mógł użyć dziedziczonych setterów i getterów prototypu, dostępu do konstruktora, valueOf oraz process.getBuiltinModule, aby dotrzeć do modułu child_process i wykonać dowolny kod z uprawnieniami procesu gospodarza. Problem naprawiono w wersjach 1.8.8 i 2.2.0.
- CVE-2026-52746Wysokie
JSONata, język zapytań i transformacji JSON, przed wersjami 2.2.0 i 1.8.9, zawiera podatność na atak DoS przez złośliwe dane wejściowe do funkcji $toMillis. Niepasujące dane powodują superlinearny backtracking w regexie walidacji ISO-8601, prowadząc do odmowy usługi w aplikacjach przetwarzających wyrażenia JSONata pochodzące od użytkownika. Problem naprawiono w wersjach 2.2.0 i 1.8.9.
Oryginalny opis (angielski, źródło NVD)
JSONata is a JSON query and transformation language. Prior to 1.8.8 and 2.2.1, crafted JSONata expressions could chain several object-integrity weaknesses to execute arbitrary code. The chain could overwrite $clone to mutate objects through evaluateTransformExpression, expose and deconstruct JSONata functions or lambdas through $merge.*, replace proc.arguments.forEach used by applyProcedure, and forge internal lambda state. These primitives allowed an attacker to reach prototype getters, prototype and constructor access, and process.getBuiltinModule with child_process, executing code with the privileges of the host process. This issue is fixed in versions 1.8.8 and 2.2.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

