CVE-2026-54133:
NixOS 취약성 분석 및 완화
개요
CVE-2026-54133 is a code injection vulnerability in jmespath.php (the PHP implementation of JMESPath) that allows unauthenticated remote attackers to execute arbitrary PHP code. It affects all versions of the mtdowling/jmespath.php Composer package prior to 2.9.1. The vulnerability was published on June 12, 2026, with the security advisory authored by GrahamCampbell and credited to reporter edorian. It carries a CVSS v3.1 base score of 9.8 (Critical) (GitHub Advisory).
기술적 세부 사항
The root cause is improper encoding of output (CWE-116) combined with code injection (CWE-94) and insufficient input validation (CWE-20). When JmesPath\CompilerRuntime processes a JMESPath expression, it emits parsed function names directly into generated PHP source code without safely escaping them as PHP string literals. An attacker who can supply a crafted JMESPath expression — using a non-identifier value where the parser accepts a function callee — can inject arbitrary PHP into the generated cache file, which is subsequently loaded and executed by the compiler runtime. The vulnerability is only triggered when JmesPath\CompilerRuntime is used directly, or when JmesPath\search() is called with the JP_PHP_COMPILE environment variable enabled; the default AstRuntime interprets the parsed expression tree and is not affected (GitHub Advisory).
영향
Successful exploitation allows an unauthenticated attacker to execute arbitrary PHP code with the full privileges of the PHP application process, resulting in high confidentiality, integrity, and availability impact. An attacker could read sensitive application data and credentials, modify or delete data, deploy web shells for persistent access, or pivot laterally within the hosting environment. The attack requires only the ability to influence the JMESPath expression string passed to the vulnerable runtime — the data document being searched is not sufficient on its own (GitHub Advisory, Feedly).
착취 단계
- Identify target applications: Locate PHP applications that accept user-supplied JMESPath expressions and use
JmesPath\CompilerRuntimeor haveJP_PHP_COMPILEenabled (e.g., via Composer dependency analysis or application behavior fingerprinting). - Craft a malicious JMESPath expression: Construct an expression that places attacker-controlled content where the parser expects a function callee name — for example, embedding PHP code such as
<?php system($_GET['cmd']); ?>in a position that will be written unescaped into the generated PHP cache file. - Submit the expression: Send the crafted expression to the application endpoint that evaluates JMESPath queries (e.g., via an HTTP request parameter, API call, or form field).
- Trigger cache file generation: The
CompilerRuntimeprocesses the expression, writes the generated PHP (containing the injected payload) to the compiled-expression cache directory on disk. - Execute injected code: The runtime loads the generated cache file, causing the injected PHP to execute in the context of the application process, granting the attacker arbitrary code execution with the privileges of the web server user (GitHub Advisory).
타협의 징후
- File System: Unexpected or malformed
.phpfiles in the jmespath compiled-expression cache directory containing PHP tags (<?php) or suspicious function calls (system(),exec(),passthru(),shell_exec(),eval()). - File System: New web shells or backdoor scripts created in the web root or application directories by the PHP process.
- Logs: Application or web server access logs showing requests with unusual JMESPath expression strings containing PHP syntax characters (
<?,?>,system,exec) in query parameters or request bodies. - Process: Unexpected child processes spawned by the PHP-FPM or web server process (e.g.,
sh,bash,curl,wget,python) following JMESPath query requests. - Network: Outbound connections from the web server to unknown external IPs, particularly following requests that include JMESPath expressions in user input.
완화 및 해결 방법
Upgrade mtdowling/jmespath.php to version 2.9.1 or later, which patches the issue by properly escaping function names emitted into generated PHP source. If an immediate upgrade is not possible, disable the JP_PHP_COMPILE environment variable and avoid instantiating JmesPath\CompilerRuntime with any attacker-controlled input. Applications should use the default AstRuntime (via JmesPath\search() without JP_PHP_COMPILE) for all untrusted JMESPath expressions, as it interprets the parsed expression tree and is not affected by this vulnerability (GitHub Advisory).
커뮤니티 반응
The vulnerability was published by GrahamCampbell via the GitHub Security Advisory program on June 11–12, 2026, with reporter credit to edorian. It was subsequently picked up by automated vulnerability tracking services including VulnDB, OSV, ENISA EUVD, and CISA's weekly bulletin (SB26-166). Red Hat also acknowledged the CVE in their security tracking. Social media activity on Bluesky noted the disclosure, but no significant researcher commentary or broader media coverage has been identified beyond standard vulnerability aggregation (GitHub Advisory, CISA Bulletin).
추가 자료
근원: 이 보고서는 AI를 사용하여 생성되었습니다.
관련 NixOS 취약점:
무료 취약성 평가
클라우드 보안 태세를 벤치마킹합니다
9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.
추가 Wiz 리소스
맞춤형 데모 받기
맞춤형 데모 신청하기
"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."