CVE-2026-77415
KrytyczneCVSS 9.3Streszczenie
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.
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.

