EC プラットフォーム Vendure の脆弱性 CVE-2024-48914 が FIX:PoC も提供

CVE-2024-48914 (CVSS 9.1): Critical File Read Flaw Discovered in Vendure E-commerce Platform

2024/10/18 SecurityOnline — 人気の OSS ヘッドレス Eコマースのプラットフォーム Vendure に、深刻なセキュリティ脆弱性 CVE-2024-48914 (CVSS:9.1) が発見された。この脆弱性の悪用に成功した攻撃者は、サーバからの任意のファイル読み取りを達成し、コンフィグ・ファイルや環境変数などの機密情報を漏洩させる可能性を手にする。

脆弱性 CVE-2024-48914 は、AssetServerPlugin におけるパス・トラバーサルに起因するものであり、LocalAssetStorageStrategy と併用された場合にトリガーされる。この欠陥を悪用する攻撃者は、不適切なパス正規化の欠陥を突いたリクエストを作成し、意図されていないディレクトリ内の、ファイルへのアクセスを可能にする。

この脆弱性を発見した、セキュリティ研究者の Rajesh Sharma が提供する PoC エクスプロイト・コードが示すのは、package.json ファイルの内容を、攻撃者が不正に取得する方法である。

curl --path-as-is http://localhost:3000/assets/../package.json

Sharma のアドバイザリには、「ベンダー・サービスが nginx/apache などのサーバの背後にある場合には、パスの正規化はルート・サーバ・レベルで実行される。しかし、実際のクライアントのリクエスト・パスはベンダー・サービスに送信され、結果として得られるはずの正規化されたパスは送信されない。したがって、ルート・サーバの種類に応じて、さまざまなペイロードを試すことで、このような正規化バイパスが可能になる」と記されている。

さらに、Sharma は、同じコード・パスにサービス拒否 (DoS:denial-of-service) の攻撃ベクターが存在することも指摘している。攻撃者は、不正にエンコードされた URI を取り込んだリクエストを送信することで、サーバーをクラッシュさせることが可能になるという。

curl --path-as-is http://localhost:3000/assets/%80package.json

Sharma の警告は、「このような不正なリクエストが処理されると、システム・クラッシュやリソース枯渇が引き起こされ、サービスの利用が不可能になり得る」というものだ。

脆弱性 CVE-2024-48914 に関する影響と対策

この脆弱性により、LocalAssetStorageStrategy を利用している Vendure ユーザーに、深刻なリスクが生じる。攻撃者は、機密データを盗み出すことも、サービスの可用性を妨害することも可能にする。

すでに Vendure は、バージョン 3.0.52.3.3 で脆弱性 CVE-2024-48914 に対応しており、ユーザーに対して直ちに更新するよう促している。また、このアドバイザリで回避策として推奨されるのは、MinIO や S3 などのオブジェクト・ストレージをローカル・ファイル・システムの代わりに使用すること、および、悪意の URL を持つ可能性のあるリクエストをブロックするミドルウェアを実装することである。

脆弱性 CVE-2024-48914 (CVSS:9.1) は、Vendure を実行しているあらゆる組織にとって重大な脅威となる。攻撃者は、パス・トラバーサルによる機密ファイルへのアクセスや、サービス拒否攻撃によるサービスの完全な無効化を可能にする。Vendure のユーザーに対して強く推奨されるのは、パッチが適用されたバージョンへのアップグレードおよび回避策を早急な適用により、これらの重大なリスクを軽減することだ。