laravelの脆弱性がAPTで使用されているようであり、ハニーポットでも攻撃を観測しているとのことでした。
どのような脆弱性なのかを検証してみようと思います。
※この記事で知り得たことを悪用することは禁止とします。
目次
PHPのフレームワークです。
今回の脆弱性はLaravelで使用されている「ignition」との組み合わせ脆弱性となります。
laravelで使用されている、エラーページ用のOSSです。
https://github.com/facade/ignition
laravel8.4.2以下かつignition 2.5.1以下
laravel8.4.2以下かつignition 2.5.1以下の場合に、リモートから認証なしでOSコマンド実行が可能です。
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3129
1.環境確認
脆弱性があるignition2.5.1を使用します。
2.起動確認
起動はしました。
3.脆弱性使用
詳細は伏せていますが、攻撃コードを使用することでOSコマンドの実行ができています。
1.環境確認
修正されたignition2.5.2を使用します。
2.脆弱性使用
脆弱性をしようとしても、ただ応答するだけでコマンド実行ができませんでした。
ログファイルをどうこうしてコマンド実行するのですが、ログファイルにも書き込みはありませんでした。
詳細を伏せざるを得ないので、説明が全くできませんが、成功時は「200」応答だったリクエストが「500」応答になっていました。
デバッグモードを無効にすると、404となり悪用できなくなります。
2.5.1と2.5.2の差異
src/Solutions/MakeViewVariableOptionalSolution.php
https://github.com/facade/ignition/compare/2.5.1…2.5.2
本来は「.blade.php」と最後についたファイルを修正するのが正しい目的です。
デバッグモードでのみ有効なため、簡単な修正を自動的に実施してくれるツールです。
そのため、修正する対象は「.blade.php」が最後につくファイルのみです。
また、ファイルが対象となるため、「php://」や「phar://」といったスキーマも受け付けなくなりました。
8.4.2と8.4.3の差異
config/broadcasting.php
config/cache.php
https://github.com/laravel/laravel/compare/v8.4.2…v8.4.3
全くわかりませんでした。
わかる方いらっしゃったら教えてください。
発表記事
https://www.ambionics.io/blog/laravel-debug-rce
以下記事を見つけて検証してみようと思いました。
https://qiita.com/reopa_sharkun/items/f3819b2e8727728da82a
一般ユーザにも悪用事例が出ているので、速攻アップデート・緩和策実施を推奨します。
実際どんなpocを実行して、どんなリクエストが送信されたかなどは把握していますので、興味ありましたら私までご連絡ください。
サイバーセキュリティ情報共有コミュニティをやっています。
インシデント例や脆弱性情報などを取り扱っています。
毎週金曜日はボイスチャットにて雑談会を行っています。
ご興味ありましたらご参加いただけると嬉しいです!
参加はこちら!