CVE-2021-29440
Grav CMS 1.7.10 の静的ページの安全でない Twig 処理による RCE
- Grav はファイルベースのWebプラットフォームです。静的ページの Twig 処理は、ページの作成または編集を許可された管理ユーザーであれば誰でもフロントマターで有効にできます。Twig プロセッサはサンドボックス化されずに実行されるため、この動作を利用して任意のコード実行を達成し、インスタンス上の権限を昇格させることができます。
解説
- /admin ダッシュボードにアクセスでき、ページ作成権限を持つユーザーが必要です。
- フロントマターブロックは process.twig という名前のディレクティブをサポートしており、ページを配信する前にコンテンツに対して Twig レンダリングパスを適用します。
- この動作はデフォルトでは無効ですが、基本的なページ作成権限を持つユーザーはフロントマターでこの機能を有効にできます。
- コンテンツ
{{ system("id") }} を含むページを作成し、Twig レンダリングを有効にします: Advanced --> Process --> Twig (enable)
- 作成したページにアクセスして、コマンドの出力を確認します。
使用方法
- ユーザー名、パスワード、url 変数を編集してからスクリプトを実行してください。
python3 exploit.py
環境
- environment.sh を実行して、Apache 上に Grav CMS 1.7.10 をセットアップしてください。
クレジット