注目★★★★★GitHub Advisory
jmespath.php に任意 PHP コード実行脆弱性、コンパイラが関数名をエスケープ不足
30秒で把握
- 1jmespath.php の CompilerRuntime にエスケープ不足で任意 PHP コード実行脆弱性
- 2攻撃者が JMESPath 式の関数名をキャッシュファイルに PHP コードとして注入可能
- 3CompilerRuntime / JP_PHP_COMPILE 利用時は速やかにパッチ適用か AstRuntime 切り替えを検討
要約
mtdowling/jmespath.php の CompilerRuntime がエスケープ不足のため、攻撃者が制御した JMESPath 式を使い任意 PHP コード実行が可能。コンパイラが関数名をキャッシュファイルに出力する際に PHP 文字列リテラルとして安全にエスケープせず、生成されたソースコードに攻撃者の PHP コードが混入する。アプリケーションが攻撃者制御の JMESPath 式を処理し CompilerRuntime で評価するか JP_PHP_COMPILE を有効にした JmesPath\search() 利用時に悪用され、PHP プロセスの権限で任意コード実行に至る。デフォルト実行時 AstRuntime は影響を受けない。
あなたへの影響
jmespath.php を利用し。
推奨:ユーザー入力を JMESPath 式として処理するアプリケーションは CompilerRuntime や JP_PHP_COMPILE を使用していないか確認し、使用中なら速やかにパッチ適用または AstRuntime への切り替えを検討すべき。