
2026/09/26 10:13
あるTwitchのチャットメッセージがストリーマーのPC上でコード実行になるまで
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
要約:ストリーマーは、パッチ未適用の欠陥により攻撃者がユーザーの関与を必要とせずにマシン上で悪意のあるコードを実行できるため、即座かつ深刻なセキュリティリスクに直面しています。この「ゼロクリック」 exploits は、古い Chromium ビルド(CVE-2024-7971)を使用し、重要な安全バリアを除去する無効化されたブラウザサンドボックスと組み合わせることによって生じています。攻撃は、未洗浄の視聴者入力(raw HTML チートオーバーレイ)がレンダリングされる際に発生し、これを直接実行可能なコードに変換します。この問題は既に北朝鮮の脅威アクターによって武器化されており、Microsoft が重大な欠陥としてフラグしており、緊急に対応しない場合、完全なマシン乗っ取りにつながります。今年後半に OBS Studio 33.0 に公式パッチが届くまでの間、侵害を防ぐために、ユーザーは Browser Sources またはドックス内での HTML ベースのチャットまたは視聴者コンテンツの表示を厳格に避ける必要があります。この特定の構成エラーは、標準的な機能を攻撃者のエントリーポイントに変換します。開発チームは、基盤となる Chromium エンジンのアップグレードとサンドボックスの再有効化を積極的に進めていますが、野生での能動的な利用に対する脆弱なインストールを保護するために、直ちに手動での予防策が必要です。
本文
OBS のブラウザソースと V8 脆弱性:デフォルト設定で発生するリモートコード実行攻撃
はじめに
不安なチャットオーバーレイ、サンドボックス化されていない Chromium レンダラ、そしてすでに実世界中で悪用された V8 のバグ。これらを組み合わせることで、視聴者の操作するテキストさえもネイティブコードの実行手段へと変貌させ、OBS(Open Broadcaster Software)そのものをデフォルト設定のまま攻撃可能とする脆弱性が特定されました。
発覚の経緯:Twitch チャットオーバーレイの XSS
私は OBS の「ブラウザソース」内で視聴者のメッセージを生の HTML としてレンダリングする Twitch チャットオーバーレイを発見しました。これにより、OBS に埋め込まれた Chromium ブラウザ内部での JavaScript 実行が可能になります。
当時の最新リリース版 OBS は、以下の条件を満たしていました:
- 通常通りのサンドボックスなしで動作する Chromium ビルドを配布している。
- V8 実装は CVE-2024-7971(すでに悪用事例が確認されている脆弱性) に対して依然として脆弱である。
これらが組み合わさることで、「Twitch チャットでのメッセージ入力」から始まり、「ストリーマーのマシンへの完全な制御」に至るという攻撃チェーンが形成されました。
概念実証コード (PoC) の概要
この発見はスクリーンショットから始まりました。友人が作成した Twitch チャットオーバーレイの画面表示において、以下の重要な事実が見られました:
- チャットメッセージはサニタイズ(浄化処理)を行わず、そのまま HTML としてページ内に挿入されている。
これは古典的な クロスサイトスクリプティング (XSS) です。視聴者が決定したコンテンツがテキストではなく HTML として扱われるため、攻撃者のコードが実行されてしまいます。 これにより実現可能な攻撃フローは以下の通りです:
- 視聴者が 1 つの悪意ある Twitch チャットメッセージを送信
- 脆弱なオーバーレイがそれを JavaScript 実行へと変換
- V8 のエクスプロイトを介してネイティブコード実行へと昇華
- 攻撃者がストリーマーのマシン上で任意のコードを実行できる状態に至る
過去に存在した WebSocket インターフェース経由の攻撃手法とは異なり、今回はブラウザ機能そのものが悪用されるため、より強力なリスクとなっています。
脆弱性の技術的背景
OBS 内部には完全なブラウザが搭載されている
OBS の「ブラウザソース」は CEF (Chromium Embedded Framework) を通じて Chromium を動力源としています。チャットボックス、アラート、寄付ウィジェットなどに使用されますが、これは単なるコンポーネントではなく、OBS に埋め込まれたフルサイズの Chromium ブラウザ上で動作しているのです。 XSS が実装されれば、視聴者の JavaScript がそのまま Chromium 内で実行されるため、セキュリティの境界線(セグメンテーション)が存在しない状態になります。
Chromium のサンドボックスが無効化されている
Chrome は通常、レンダラプロセスを分離するためにサンドボックスを使用します。しかし、OBS は埋め込んだ CEF ブラウザを以下の設定で初期化しており、この防御機構を無効化しています:
settings.windowless_rendering_enabled = true; settings.no_sandbox = true;
この設定により、XSS によって実行された JavaScript が V8 を経由してネイティブコード実行に成功すれば、もはや Chromium のサンドボックスを突破するための障壁はありません。
悪用され得る脆弱性:CVE-2024-7971
テスト対象の OBS (バージョン 32.2.2) は、以下のコンポーネントを使用していました:
- Chromium: 127.0.6533.120
- V8: 12.7.224.18
これらのバージョンは CVE-2024-7971(V8 のタイプ混同バグ)の影響を受けます。
- Google は Chrome 128 でこの脆弱性をパッチアップ済みですが、OBS はまだ古いバージョンを使用。
- この脆弱性は理論上だけでなく、Microsoft や CISA が「既知の悪用された脆弱性 (Known Exploited Vulnerabilities)」として登録するほど実在で悪用されています。
- Microsoft の観測では、V8 を経由したコード実行からサンドボックス脱出まで別の脆弱性を必要としましたが、OBS 内部ではサンドボックス障壁そのものが無効化されていたため、攻撃のハードルが大幅に下がります。
重要なのは「デフォルト設定」とは何か
今回のリスクは、「OBS を最初からインストールした fresh インストールであっても、Twitch チャット上の誰でもリモートから操作可能」なわけではありません。重要な点は以下の通りです:
- 攻撃の入り口:脆弱なオーバーレイそのもの(ストリーマー側が選択・設定したもの)。
- デフォルトの設定:OBS 標準のブラウザソースを使用している限り、WebSocket の設定変更や管理者権限取得などの追加操作は不要。
- ゼロクリックエントリー:チャット XSS がトリガーとなり、視聴者の視点から見て「遠隔かつゼロクリック」で悪用可能となる構造を持つ。
ストリーミング環境は Web コンテンツ(チャット、寄付アラートなど)で溢れており、多くのデータがインターネット上他从者供給されています。**「チャットメッセージがテキストである場合はテキストとしてレンダリングし、HTML が必要な場合は適切にサニタイズする」**という原則の遵守が不可欠です。
OBS チームによる対応状況
OBS チームは修復策を二つの方向で進めています:
1. 埋め込みブラウザのアップグレード
最大の障壁となっていたのは、オフスクリーンレンダリングに対応していない新しい Chrome Runtime です。
- 現状: Chromium 127 から更新されており、CVE-2024-7971 が修正される CEF 128+ への移行が完了・テスト済み。
- 目標: OBS Studio 33.0(obs-browser PR #523 のマージ)を目標としており、これにより特定の V8 バグも修正されます。
2. CEF サンドボックスの有効化
- 現状: アップグレードの一部としてテスト中。当初無効化されていた理由はサービス統合の認証破損でしたが、現在その問題も解決済みと推測。
- 効果: サンドボックスが再有効にできれば、ブラウザだけを悪用して攻撃に成功することはなくなります。攻撃者はサンドボックス脱出のために第 2 の脆弱性の悪用を必要とすることになります。
開示に関するタイムライン
本件の処理フローは以下の通りです(注:記事内の日付は未来の日付として記述されています)。
- 2026 年 2 月 14 日: オーバーレイ作成者との調整開始。
- 2026 年 7 月: Windows 11 上でエンドツーエンドの完全な連鎖を再現。
- 2026 年 8 月 19 日: OBS へ報告。
- 2026 年 8 月 20 日: OBS が承認、CEF アップグレードを進める。個別 CVE は発行しない方針。
- 2026 年 8 月 25 日: サンドボックスの再有効化がテスト中との確認。
- 2026 年 9 月 10 日: obs-browser への PR #523 がマージ。
- 2026 年 9 月 17 日: obs-studio への PR #13890 がマージ。
- 2026 年 9 月 22 日: 本稿の公開。
結論:ストリーマーが今すぐ行うべき対策
アップロードされるまでの間に誰もが管理できるのは「プラグインにロードされるコンテンツ」のみです。したがって、以下の原則を厳格に遵守してください:
- **「ブラウザソース内のあらゆるものは不信な入力として扱う」**とみなす。
- 特に重要:ウィジェットやオーバーレイは、視聴者のコンテンツを HTML としてレンダリングしてはいけません。
- 不要であればブラウザソースを使用しないか、信頼できるソースのみを許可する設定にします。
ブラウザエンジンの最新化やサンドボックス有効化が完了するまでには数ヶ月かかる可能性があります。その期間中に、**「入力されたコンテンツをサニタイズしない」**という最小限の対策を行うことが最も重要です。