CVE-2026-54133 PUBLISHED

jmespath.php has CompilerRuntime code injection via unescaped function names

Assigner: GitHub_M
Reserved: 11.06.2026 Published: 12.06.2026 Updated: 12.06.2026

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.

Metrics

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

Product Status

Vendor jmespath
Product jmespath.php
Versions
  • Version < 2.9.1 is affected

References

Problem Types

  • CWE-20: Improper Input Validation CWE
  • CWE-94: Improper Control of Generation of Code ('Code Injection') CWE
  • CWE-116: Improper Encoding or Escaping of Output CWE