CVE-2026-54133CWE-116CWE-20CWE-94

jmespath.php has CompilerRuntime code injection via unescaped function names

Critical · published June 12, 2026

CVSS v3.1
9.8
EPSS
1%
Percentile
46.1
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00564 · 46.1th percentile
Weaknesses
CWE-116 · Improper Encoding or Escaping of Output; CWE-20 · Improper Input Validation; CWE-94 · Improper Control of Generation of Code ('Code Injection')
Published
2026-06-12T13:56Z
EPSS history
Timeline
  • 12 JUN 13:56Z
    jmespath.php has CompilerRuntime code injection via unescaped function names
    cvelistv5