概要
セキュリティ研究者が、MetaのConversions API Gatewayに2つの重大なクロスサイトスクリプティング(XSS)脆弱性を発見しました。これらの脆弱性を悪用すると、ユーザーの操作なしにFacebookアカウントを乗っ取ることが可能になります。この問題はfacebook.comおよびmeta.comを含むMeta所有ドメインだけでなく、オープンソースのゲートウェイインフラを導入している1億以上の第三者展開にも影響を及ぼす可能性があります。
Conversions API Gatewayとは
Meta Conversions API Gatewayは、企業がWebイベントや顧客インタラクションデータをMetaの広告プラットフォームに直接送信できるようにするサーバーサイドソリューションです。従来のブラウザベースのトラッキング方法とは異なり、サーバーレベルで動作することでCookieの制限や広告ブロッカーを回避します。このゲートウェイは、コンバージョン追跡をサポートするために重要なJavaScriptファイルであるcapig-events.jsを配信しており、このスクリプトはMetaプロパティや数千の第三者ウェブサイトで自動的に実行されます。
発見された脆弱性の詳細
クライアントサイドXSS(CVE-2024-XXXXX):不適切なオリジン検証
最初の脆弱性は、クライアントサイドのcapig-events.jsスクリプト内の不適切なpostMessageオリジン検証に存在します。ページにオープナーウィンドウがある場合、スクリプトはIWL_BOOTSTRAPというラベルの構成メッセージをリッスンします。メッセージソースを許可リストと照合して検証する代わりに、コードはevent: origin値を盲目的に信頼し、後で使用するために保存します。この信頼されたオリジンは、その後、攻撃者が制御するドメインから別のJavaScriptファイル(iwl.js)を動的にロードするために使用されます。
MetaのContent Security Policy(CSP)およびCross-Origin-Opener-Policy(COOP)が保護を提供しているように見えますが、研究者は複数のバイパス手法を発見しました。
/help/ディレクトリ下のログインしていないMetaページでは、CSPポリシーが緩和され、第三者の分析ドメインが許可されます。- FacebookのAndroid WebView環境では、
window.nameの再利用とiframeハイジャックを組み合わせて悪意のあるpostMessageを配信することに成功しました。
この多段階攻撃チェーンにより、最終的にmeta.comのコンテキスト内で任意のJavaScript実行が可能となり、攻撃者はCSRFトークンを盗み、電子メールアドレスの変更や完全なアカウント乗っ取りを含む特権操作を実行できます。この脆弱性のCVSSスコアは8.5(高)と評価されています。
保存型XSS(CVE-2024-YYYYY):安全でない文字列連結
2番目のより深刻な脆弱性は、ゲートウェイのバックエンドコードに存在します。企業がMetaのIWL(Intelligent Web Logging)構成ツールを通じてイベントマッチングルールを作成する際、バックエンドはユーザーが提供した値を適切なサニタイズやエスケープなしで連結することで、capig-events.jsの一部を生成します。
公開されているソースコードの分析により、Javaファイル内でJSONキーがJavaScript出力に直接連結されていることが判明しました。攻撃者は引用符や閉じ括弧などの文字を挿入することで、文字列コンテキストをエスケープし、任意のJavaScriptコードをcapig-events.jsファイルに直接挿入できます。この保存型XSS脆弱性は、個々のユーザーをだます必要がないため、特に壊滅的です。
一度注入されると、悪意のあるペイロードは、Metaドメインおよび認証されたFacebookセッション全体で侵害されたスクリプトをロードするすべての訪問者に対して自動的に実行されます。この脆弱性はオープンソース技術であるため、Metaのインフラストラクチャを超えて、世界中で1億回以上展開されている第三者のドメインにも同じ保存型XSSの弱点が継承されています。このサプライチェーンの脆弱性により、攻撃者は数時間以内に数え切れないほどのウェブサイトで何百万ものユーザーを静かに侵害する可能性があります。この脆弱性のCVSSスコアは9.8(緊急)と評価されています。
影響と教訓
これらの脆弱性は、分析インフラストラクチャが、製品、ドメイン、顧客間で共有され、信頼されたJavaScriptとして機能する場合、低リスクのコードとして扱えないという根本的なセキュリティ原則を浮き彫りにしています。このようなシステムにおけるわずかな信頼境界の失敗が、プラットフォーム全体に及ぶセキュリティ上の大惨事につながる可能性があります。
最新のウェブプラットフォームでは、厳格なオリジン検証、防御的なCSP設計、および安全なコード生成プラクティスの重要性が強調されています。
元記事: https://gbhackers.com/critical-xss-vulnerabilities-in-meta-conversion-api/
