狡猾な人物であれば、特別に細工した HTML ファイルをユーザーに見せることで、Firefox を使用している Android デバイスからすべての Cookie を吸い取ることも可能です。
情報セキュリティ研究者のペドロ・オリベイラ氏は、Firefox が URI を通じてローカル ファイルを処理する方法に脆弱性を発見しました。content://
この脆弱性により、デバイスに保存されているすべての Cookie のコピーをリモートで取得できるようになり、デバイスのユーザーが閲覧した Web サイトをある程度推測できるようになりました。
この欠陥は Android 版 Firefox の最新バージョンで修正されているが、オリベイラ氏の脆弱性に関する記述、および同氏の説明によれば Mozilla が修正した速さから、同氏の言葉を借りれば、目立たないが簡単に悪用される脆弱性が明らかになった。
このエクスプロイトは、ユーザーを特定のHTMLファイルにアクセスさせることで機能しました。悪意のあるファイルはiframeを開き、content://
Firefoxのprofiles.ini
ファイルへのURIを呼び出しました。このURIには、ユーザーのFirefoxプロファイルとCookieに関する情報が含まれています。FirefoxがこれらのURIを適切に処理していたため、Oliveira氏は、リモート攻撃者がWebページ経由でアクセスできないはずのローカルファイルのコピーを入手することができました。
ブログ投稿では に言及していましたがprofiles.ini
、Oliveira 氏が Mozilla に提出した脆弱性は、プロファイルに関連付けられた Cookie を抽出するためのエクスプロイトにまで拡張されました。
Firefox のアップデート: Mozilla が 3 つのハイジャック脆弱性とその他の多数の脆弱性を修正
続きを読む
研究者は、URIを使用してcontent://
デバイス上のローカル ファイルにアクセスしたところ、ブラウザがこれらのファイルをfile://
URI にリダイレクトしていることに気付きました。これは、要求されたリソースのコピーを読み込む前にプライベート キャッシュ ディレクトリに保存していることを示しています。
「これらのcontent://
URIは、他のアプリからアクセスするために読み取りと書き込みの権限が必要です」とオリベイラ氏はThe Registerに語った。「アプリ間でURIを共有する場合(例えば「共有」ルーチンなど)、元のアプリは共有前にそのURIに権限を与える必要があります。このURIは、受信側アプリと共有される際に権限を保持し、受信側アプリのみがアクセスできます。しかし、アプリが自身から(他のアプリではなく)URIを処理する場合、これらの権限は適用されないため、アプリは自由にコンテンツにアクセスできます。」
Oliveira 氏は、Firefox 68.10.1 より前のバージョンで読み込まれたファイルはすべてこの方法で処理されることを発見しました。
彼は説明を続け、こう述べた。「ダウンロードした(悪意のある)ファイルと、エクスプロイトによって読み込まれたファイルは名前が同じなので、プライベートディレクトリ内で置き換えられます。すると、悪意のあるキャッシュファイルが開かれますが、元のファイルは別のファイルに置き換えられています。iframeが読み込まれると、キャッシュされた悪意のあるファイルは自身のコンテンツを悪意のあるウェブページに送信します。パスが同じで、オリジンも同じなので、ポリシーの適用は行われません。」
Mozillaはコメントを求められているが、Firefoxは7月にバージョン68.10.1にアップデートされ、脆弱性が修正されている。このオープンソースブラウザは長年にわたり、公開されている脆弱性に関する報告を数多く受けており、2018年には、ユーザーを悪意のあるウェブページに誘導することで機能する、やや類似したリモートコード実行の脆弱性も確認されている。®