CRITICAL🇬🇧 English

CVE-2026-54133

RCE w jmespath.php — wstrzyknięcie kodu PHP przez wyrażenie JMESPath

CVSS 9.8v3.1pub. 2026-06-12upd. 2026-06-15

Biblioteka jmespath.php w wersjach wcześniejszych niż 2.9.1 pozwala atakującemu na wstrzyknięcie i wykonanie dowolnego kodu PHP poprzez spreparowane wyrażenie JMESPath przetwarzane przez komponent CompilerRuntime. Podatność umożliwia zdalne wykonanie kodu (RCE) bez uwierzytelnienia, co czyni ją krytycznym zagrożeniem dla aplikacji PHP korzystających z tej biblioteki.

Pokaż oryginał (EN)

jmespath.php allows users to use JMESPath, software for declaratively specifying how to extract elements from a JSON document, in PHP applications with PHP data structures. Versions prior to 2.9.1 can generate and execute attacker-controlled PHP code when `JmesPath\CompilerRuntime` is used with an attacker-controlled JMESPath expression. The compiler emits parsed JMESPath function names into generated PHP source without sufficient escaping. A crafted expression can cause the generated cache file to contain executable attacker-controlled PHP, which is then loaded by the compiler runtime. The issue is patched in `2.9.1` and later. As a workaround, disable `JP_PHP_COMPILE` and do not use `JmesPath\CompilerRuntime` with attacker-controlled expressions. Use the default `AstRuntime` for untrusted expressions. Applications that must continue accepting untrusted JMESPath expressions before upgrading should ensure those expressions are never evaluated by the compiler runtime.

🤖 Analiza AI
Jak działa

Komponent `JmesPath\CompilerRuntime` przetwarza wyrażenia JMESPath i generuje z nich pliki cache w postaci kodu PHP. Nazwy funkcji JMESPath z parsowanego wyrażenia są wstawiane do generowanego źródła PHP bez wystarczającego escapowania (CWE-116, CWE-20). Atakujący może spreparować złośliwe wyrażenie JMESPath zawierające kod PHP, który zostanie osadzony bezpośrednio w pliku cache. Wygenerowany plik cache jest następnie ładowany i wykonywany przez CompilerRuntime, co prowadzi do wykonania kontrolowanego przez atakującego kodu PHP (CWE-94).

Skutki

Atakujący może uzyskać pełną kontrolę nad serwerem przez zdalne wykonanie dowolnego kodu PHP (RCE), co w konsekwencji może oznaczać naruszenie poufności, integralności i dostępności systemu.

Mitygacja

Należy zaktualizować bibliotekę jmespath.php do wersji 2.9.1 lub nowszej, w której problem został załatany. Jako obejście przed aktualizacją: wyłączyć flagę `JP_PHP_COMPILE`, nie używać `JmesPath\CompilerRuntime` z wyrażeniami kontrolowanymi przez użytkownika oraz zastąpić go domyślnym komponentem `AstRuntime` dla wszystkich niezaufanych wyrażeń.

Kogo dotyczy

Biblioteka jmespath.php w wersjach wcześniejszych niż 2.9.1, wyłącznie gdy w aplikacji używany jest komponent `JmesPath\CompilerRuntime` i przetwarza on wyrażenia JMESPath pochodzące od niezaufanych użytkowników.

Uwagi

Podatność dotyczy wyłącznie aplikacji używających `JmesPath\CompilerRuntime` — aplikacje korzystające z domyślnego `AstRuntime` nie są podatne. Patch dostępny w wersji 2.9.1.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Jmespath

    APP
    Jmespath
    < 2.9.1
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2022-32511CRITICAL9.8ten sam produkt

jmespath.rb (aka JMESPath for Ruby) before 1.6.1 uses JSON.load in a situation where JSON.parse is preferable.