重大なAdonisJSの脆弱性により、リモート攻撃者がサーバー上にファイルを書き込める

AdonisJSのbodyparserモジュールで発見された重大なパストラバーサル脆弱性が、人気のTypeScriptファーストなWebフレームワークに依存するアプリケーションを脅かしています。

セキュリティ研究者のRomain Lanz氏は、GHSA-gvq6-hvvp-h34hとして追跡されている欠陥を公開しました。これにより、認証されていない攻撃者がサーバーのファイルシステムに任意のファイルを書き込めるようになり、リモートコード実行につながる可能性があります。

AdonisJSのbodyparserモジュールで発見された重大なパストラバーサル脆弱性が、人気のTypeScriptファーストなWebフレームワークに依存するアプリケーションを脅かしています。

セキュリティ研究者のRomain Lanz氏は、GHSA-gvq6-hvvp-h34hとして追跡されている欠陥を公開しました。これにより、認証されていない攻撃者がサーバーのファイルシステムに任意のファイルを書き込めるようになり、リモートコード実行につながる可能性があります。

この脆弱性はAdonisJSのマルチパートファイル処理、具体的には@adonisjs/bodyparserパッケージに存在します。

開発者がファイル名を適切にサニタイズせずにMultipartFile.move()メソッドを使用すると、攻撃者はパストラバーサルのシーケンスを悪用してディレクトリ制限を回避できます。

根本原因は安全でないデフォルトオプションにあります。ファイルアップロード時に開発者がfilenameパラメータを省略すると、システムはサニタイズなしでクライアント提供のファイル名を使用するのがデフォルトになります。

これをpath.join()のロジックと組み合わせることで、攻撃者は悪意のあるファイル名を作成し、「../」のようなトラバーサルシーケンスを含めて意図したアップロードディレクトリから脱出し、サーバー上の任意の場所にファイルを書き込めます。

さらに、overwriteオプションのデフォルトがtrueであるため、攻撃者は既存ファイルを上書きでき、攻撃の破壊的な可能性が増幅されます。

この脆弱性を悪用すると、攻撃者はサーバー上で任意のファイル書き込み権限を得ます。攻撃者がアプリケーションコード、起動スクリプト、またはアプリケーションが後で実行する設定ファイルを上書きした場合、単なるファイル破損にとどまらず、リモートコード実行が可能になります。

ただし、RCEの成功は複数の要因に依存します。ファイルシステムの権限、デプロイ構成、そしてアプリケーションが実行時にファイルを上書きするかどうかです。

悪用には到達可能なアップロードエンドポイントへのアクセスが必要であり、これはリモート攻撃ベクターとなります。

この脆弱性は@adonisjs/bodyparserの10.1.1までのバージョン、および11.0.0-next.6以前の11.xの初期プレリリース版に影響します。

これらのバージョンを使用している開発者は、独自のファイル名サニタイズを実装していない場合、直ちにリスクにさらされます。

AdonisJSのメンテナーは、10.1.2および11.0.0-next.6でこの脆弱性に対処するパッチを公開しました。セキュリティを重視する開発者は、直ちにこれらの修正済みバージョンへアップグレードすべきです。

すぐに更新できない組織では、MultipartFile.move()を呼び出す前に明示的なファイル名サニタイズを実装することで一時的な防御になります。オプションを設定します。

nameパラメータを検証済みの安全なファイル名にすることで、トラバーサル攻撃を防げます。

開発チームはこれを最優先のセキュリティパッチとして扱うべきです。リモートコード実行の可能性と悪用の容易さを踏まえると、アップグレードは数週間ではなく数日以内に行うべきです。

翻訳元: https://cyberpress.org/adonisjs-vulnerability/

ソース: cyberpress.org