CVE-2026-52746
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 31 - wyżej niż 31% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może spowodować przeciążenie serwera lub aplikacji poprzez wysłanie specjalnie spreparowanych danych wejściowych, prowadząc do niedostępności usługi.
Rekomendacja
Zaleca się aktualizację JSONata do wersji 2.2.0 lub 1.8.9 (w zależności od używanej gałęzi).
Inne podatności w JSONata
Zobacz wszystkie- CVE-2026-77415Krytyczne
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.
- 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.
Oryginalny opis (angielski, źródło NVD)
JSONata is a JSON query and transformation language. Prior to 2.2.0 and 1.8.9, malicious non-matching inputs to the $toMillis function can cause superlinear backtracking in the ISO-8601 validation regex, leading to denial of service in applications that evaluate user-provided JSONata expressions. This issue is fixed in version 2.2.0 and 1.8.9.

