紹介
- このブログ記事では、Chromiumウェブブラウザの脆弱性であるCVE-2024-6778とCVE-2024-5836を発見した過程を説明している。
- この脆弱性により、ブラウザ拡張機能を通じてサンドボックスを脱出できる。
- Googleはこのバグ報告に対して$20,000を支払った。
WebUIとChromeサンドボックス
- Chromiumは信頼できないコードをサンドボックス環境で実行し、限定された相互作用のみを許可している。
- WebUIはChromiumのGUIを表示するために使われ、特定の内部APIにアクセスできる権限を持つ。
- WebUIページで実行されるコードはサンドボックスを回避できるため、攻撃者がこれを悪用できる。
エンタープライズポリシー
- Chromiumのエンタープライズポリシーシステムは、企業や学校所有のデバイスに特定の設定を強制適用するためのものだ。
- ユーザーポリシーは特定のユーザーやブラウザインスタンスに適用され、ローカルで設定できる。
ポリシーWebUI
- Chromiumには、現在のデバイスに適用されたポリシーを確認できるWebUIがある。
- このページには、ポリシーを編集できる非公式な機能が存在する。
ポリシーテストページの悪用
- Chrome v117のリリースノートで、ポリシーテストページへの言及を発見した。
- このページは、ポリシーを設定できる非公式な方法を提供している。
サンドボックス脱出
- 任意のユーザーポリシーを設定できる機能を悪用することで、サンドボックスを脱出できる。
- ブラウザスイッチャー機能を使って、任意のシェルコマンドを実行できる。
Devtools APIの悪用
- 悪意あるChrome拡張機能を通じて、chrome://policyページでJSを自動実行できる方法を見つけた。
chrome.devtools.inspectedWindow.reload() APIを使って、WebUIページ上でコードを実行できる。
結論
- 単純なミスが積み重なることで、深刻度の高い脆弱性につながり得ることを示している。
- 古いコードが常に安全とは限らず、類似のバグが発生する可能性を考慮すべきだ。
GN⁺のまとめ
- このブログ記事は、Chromiumの脆弱性を発見して報告する過程を詳しく説明している。
- この脆弱性により、ブラウザ拡張機能を通じてサンドボックスを脱出でき、Googleから$20,000の報奨金を受け取った。
- この記事は、セキュリティ研究者やソフトウェアエンジニアに有用な情報を提供し、類似の脆弱性を防ぐための教訓を示している。
- 類似の機能を持つ他のプロジェクトとして、Firefoxのセキュリティ機能を推奨できる。
1件のコメント
Hacker Newsのコメント
Chrome OS の
croshシェルをデバッグした際に、同じ API を使って OS の保護を回避し、root アクセス権を得た経験を思い出した。この記事の筆者はさらに難しい障害を乗り越えており、見事な仕事だページ URL が
${url}に置き換えられるのを防ぐため、#の後ろに置いてコメント化できる。AlternativeBrowserParameters に URL を渡すべきかどうかを検証するロジックがあるのか気になる素晴らしい記事と仕事だった。発見の過程での興奮を一緒に感じられたし、それにふさわしい報酬だ
見事な脆弱性チェーンと優れた記事だった。脆弱なコードの分析も良かった。
F12を押して再試行する、といった単純なトリックにはいつも感心させられるWebUI 検証の問題を深掘りするには遅すぎる時間だが、この問題を解決した人には賛辞を送りたい。私たちはデプロイするものについてツールチェーンを疑い、不信を持つのが普通だが、同時に Google や MS のような大企業の便利な開発ツールを過信しすぎてもいる。結局は自分のコードを書いてテストすることに集中したいからだ
本当に、今まで読んだ中でも最高のものの一つだ。非常に巧みな探偵仕事だった
Allen という高校生がプログラミング、Web 開発、サイバーセキュリティに関心を持っているとのこと。とても印象的だ
Chromium プロジェクトは、
chrome://net-internalsをページが複雑すぎるという理由で削除することに決めた。そしてchrome://policyを追加し、不完全な JSON 編集サポートを提供している本当に素晴らしい記事で、スリラー小説のように感じられた。見事な脆弱性チェーンだった