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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-13934 — Chrome Dawn WebGPU の CWE-20 欠陥に関する構造化された脆弱性調査リポジトリ:根本原因、パッチ差分、静的検証、深刻度のレビュー、セキュリティ教訓。 | Kitploit
ツール/GitHubGitHub/artwiderobo/cve-2026-13934
脆弱性分析コード分析エクスプロイトウェブセキュリティ論文と研究学習と教育
GitHubartwiderobo/cve-2026-13934

cve-2026-13934

Chrome Dawn WebGPU の CWE-20 欠陥に関する構造化された脆弱性調査リポジトリ:根本原因、パッチ差分、静的検証、深刻度のレビュー、セキュリティ教訓。

リポジトリを見る
71ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-13934

作業プロジェクトのリポジトリです。調査・分析・作業・報告書を1つのリポジトリで扱います(D088/D091)。

このファイルはリポジトリ・ボードの入口ドキュメントです。フォルダ・成果物の規約全文は docs/conventions.md を参照してください。 本文(現状・結論・リンク)は**レポート(report)**項目が昇格したときに更新します。 調査・分析・作業エージェントはルートREADMEを修正しません。

一行まとめ: Google ChromeのWebGPU実装DawnがYCbCrサンプラー生成時にVulkan仕様が 要求するパラメータ制約を検査しなかったため、すでにレンダラープロセスを掌握した攻撃者が仕様違反の値を GPUプロセスまで流し込むことができた問題です(CWE-20)。修正は検証の追加とバックエンドでの強制を 2つの層で行い、Chrome 150.0.7871.47で反映されました。

詳細な学習ドキュメントは docs/cve-2026-13934/ にあります — 原因・修正・実証・教訓を 再現なしで追えるように書かれています。

現状

対象: CVE-2026-13934 — Google Chrome / Dawn(WebGPU実装)、脆弱性タイプ CWE-20 (Improper Input Validation)。CVE発行 2026-06-30、修正バージョン 150.0.7871.47。 根拠: research/20260804-cve-2026-13934-6bacf7/sources.md §1・§2。

進捗段階 — 調査(公開情報)・調査(パッチ・diff)・分析(再現・実証)・報告(学習整理)の4ラインで 進め、4ラインすべて完了しました。

ラインステータス得られたもの
公開情報・影響範囲調査 (research/…-6bacf7/)完了 (4文書)CVE・NVD・ベンダー通知のメタデータ、CWE・CVSS、影響バージョンの境界、判断基準の判定
パッチ・diff比較 (research/…-diff-92f928/)完了 (4文書)修正コミットの特定、比較基準の3層、変更ファイル・ロジック差分、迂回・残存リスクの判定
再現・実証 (cases/…-4d10a8/)完了 (6文書) — 静的対照を実施、実行レベルでは未観察原因構造、実行可能性・制約、2リビジョンの静的対照による観測値
学習レポート (reports/…-8400bc/)完了 (4文書)目次・引用マップ、ルートREADMEドラフト、docs/ ドキュメント一覧

確認できたこと

  • CVE識別子・ステータス(公開)、CNA(Chrome/Google)、影響製品(Google Chrome)、影響コンポーネント(Dawn)。
  • 修正バージョン 150.0.7871.47 と修正コミット(Dawn 43055cbe…)、変更されたファイル3つと変更理由。
  • 脆弱な側のリビジョンには仕様制約の検査・強制・回帰テストが一切なく、修正側にはすべてある — Chromeが実際に固定した2つのDawnスナップショットを静的に対照して確認しました (cases/20260804-cve-2026-13934-4d10a8/report.md §3)。

まだ確認できていないこと(推測で埋めていません)

  • 実行レベルの観察なし — 2つのリビジョンをビルドしてユニットテストを実行してはいません。検証エラー メッセージの実際の出力、生成される VkSampler パラメータ、Vulkan検証レイヤーのVUIDレポートはコード 根拠に基づく予想値です(cases/…-4d10a8/report.md §4)。
  • 影響プラットフォーム — CVEの説明は"on Android"ですが、このCVEが掲載されたベンダー通知はデスクトップチャネルの 通知です。デスクトップでも同じ経路が成立するかは確認していません。
  • 影響バージョンの境界 — Chromiumタグ 150.0.7871.46・.47・.63 がすべて同じDawnリビジョンを 固定しているのに、CVEは"prior to .47"と記載しています。この表記の根拠を確認できませんでした。
  • 修正の完全性 — Dawn側でこのバグを参照するコミットは1件でしたが、Chromium src 側の 付随する変更があるかは全数調査していません。
  • ベンダー内部の分析 — 原因が含まれるChromium Issue 513006636 はアクセス制限中です。

深刻度 — ソースによって異なります。ベンダー(Chromium)自身の評価はMedium、CISA-ADPのCVSS v3.1は 9.6 CRITICAL(CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H)で、NVD自身の評価はありません。 どちらが正しいと判定せず併記します — 解釈は docs/cve-2026-13934/overview.mdにあります。

このリポジトリにはデプロイされたサービス(API・バックエンド・データベースなど)はありません。すべての成果物はドキュメントです。

主要な結論

1. 原因 — 仕様が要求する前提を検査していなかった

Vulkan仕様は、YCbCr変換が付いたサンプラーに対してすべての軸のアドレスモードが CLAMP_TO_EDGE であり 異方性フィルタリング(anisotropy)が無効であることを要求します (VUID-VkSamplerCreateInfo-addressModeU-01646)。パッチ前のDawnはこの制約を検査しておらず、 そのため仕様に違反するパラメータが検証を通過して VkSampler 生成まで到達できました。

決定的なのは脅威モデルです。公開説明は攻撃者がレンダラープロセスをすでに掌握した状態を 前提にしています("a remote attacker who had compromised the renderer process")。その位置では通常のWeb API経路ではなくプロセス間コマンドを直接操作できるため、レンダラー側の検証は信頼境界の 外です。そしてDawnのVulkanバックエンドはレンダラーより権限が高いGPUプロセスで動作します — そのためこの欠陥がサンドボックス脱出の表面になります。

根拠: cases/20260804-cve-2026-13934-4d10a8/root_cause.md §2 ・ 詳細: docs/cve-2026-13934/root-cause-and-fix.md

2. 修正 — 検証の1層だけでは終わらせなかった

修正コミットはDawn 43055cbeadddca41a9c973a809f859d641077b2f ("Add YCbCr sampler validation"、2026-05-27、Bug: 513006636)で、3つのファイルを変更します。

変更ファイル性質
YCbCrディスクリプタにアドレスモード・maxAnisotropyの検査4件を追加src/dawn/native/Sampler.cppフロントエンド検証 — 違反リクエストを拒否
YCbCr変換が付く経路でアドレスモード・anisotropyを仕様準拠の値で上書きsrc/dawn/native/vulkan/SamplerVk.cppバックエンド強制 — 入力が何であれ違反状態を作らない
回帰テスト YCbCrSamplerRequiredParams を追加src/dawn/tests/unittests/validation/YCbCrValidationTests.cpp再発防止

この構造がこのCVEの核心です。 レンダラーがすでに侵害されている前提なので検証だけでは不十分で、 権限が高い側で値を強制する2つ目の層が実質的な阻止線です。「入力検証が欠けていたので 検証を追加した」と要約すると防御設計の要点を逃します。

変更規模は追加53行、削除0行 — 既存ロジックを直さず、欠けていた検査を埋めたパッチです。

根拠: research/20260804-cve-2026-13934-diff-92f928/report.md §3・§4 ・ cases/20260804-cve-2026-13934-4d10a8/patch_diff.md §4

3. 実証 — 静的レベルまで確認した

Chromeが実際に固定した2つのDawnスナップショットのソースを対照しました。

観察対象脆弱側 54b4153c…修正側 01249a97…確認レベル
YCbCr検証ブロックの DAWN_INVALID_IF 数2件(機能ゲート+フォーマット未定義)6件実測
Vulkanバックエンドの仕様準拠値の強制なし(pNext 接続まで)あり実測
回帰テスト YCbCrSamplerRequiredParamsなし(TEST_F 23個)あり(24個)実測
違反リクエスト時のdevice error発生しない発生予想(コード根拠)

ここで明らかになったこと: 脆弱側にもYCbCr分岐と検査2件がすでにありました。欠陥は経路の 欠落ではなく分岐内の条件付き制約検査の欠落でした。

ビルド・実行はしていないため、以下の2項目はコード根拠に基づく予想であり実測ではありません。

根拠: cases/20260804-cve-2026-13934-4d10a8/report.md §1〜§4 ・ 詳細: docs/cve-2026-13934/evidence.md

4. 教訓

セキュリティ設計の観点

  • 信頼境界を越える値は、越えてきた側でもう一度扱うべきです。 クライアント・レンダラー側の検証は 利便性と診断のためのもので、権限境界の内側では値を検証または強制すべきです。
  • 「仕様が要求する前提」はコードで強制しなければ守られない。 条件付き制約はその条件が 成立する分岐で扱うべきですが、この事例では分岐はあり、検査だけがありませんでした。
  • 拒否(reject)と補正(clamp)は役割が異なります。 このパッチは正常な経路では拒否し、信頼 境界の外から来た値には補正を適用します。
  • 深刻度だけを見て判断しない。 同じ脆弱性にベンダー評価のMediumとCVSS 9.6 CRITICALが 共存しています。前提(レンダラーの先行侵害)を一緒に読んで初めて実際のリスクが見えます。
  • 検知シグナルの向きを逆にしない。 検証エラーメッセージはパッチ後にのみ発生します。 「ログにそのエラーがないから安全だ」という推論は逆です。

調査方法の観点

  • CVE参照リンクにパッチがなくても追跡できます。 ベンダー通知のバグ番号 → リリース比較タグ → DEPS のコンポーネントリビジョン → コンポーネントのコミットログでのバグ番号検索、という手順で修正コミットを 見つけました。手順: research/20260804-cve-2026-13934-diff-92f928/sources.md §6。
  • 回帰テストが最高の観察仕様書です。 パッチに付属するテストが「どの入力にどの結果」を 定義しているので、危険な再現なしに前後差分を確認できます。
  • 確認できたことと推測したことを混ぜない。 このリポジトリの成果物は未確認項目を空白にせず 「未確認+理由」として残します。

詳細: docs/cve-2026-13934/lessons.md

成果物

学習ドキュメント (docs/)

ドキュメント内容
docs/cve-2026-13934/overview.md概要・背景・結論の要約、深刻度の解釈
docs/cve-2026-13934/root-cause-and-fix.md原因の3層構造とパッチの2つの層
docs/cve-2026-13934/evidence.md静的対照の観測値、観察経路と限界
docs/cve-2026-13934/lessons.mdセキュリティ設計・調査方法の教訓
docs/cve-2026-13934/limits-and-sources.md限界・未確認項目と出典一覧
docs/conventions.mdフォルダ・成果物の規約(全文)

調査 — 公開情報・影響範囲 (research/20260804-cve-2026-13934-6bacf7/)

ドキュメント内容
brief.md依頼原文、判断基準C1〜C6、公式ソースの定義
sources.mdCVE・NVD・ベンダー通知のメタデータ、CWE・CVSS、ソース間の矛盾
report.md影響・CVSS・脆弱性条件の判定、C1〜C6の判定、深刻度の解釈
followups.json後続提案

調査 — パッチ・diff比較 (research/20260804-cve-2026-13934-diff-92f928/)

ドキュメント内容
brief.md目標、判断基準D1〜D6、基準パッチツリー
sources.md修正コミット・比較基準のペア、DEPS・Gerrit、追跡手順
report.md変更ファイル・ロジック差分・迂回/残存リスクの判定、D1〜D6
followups.json後続提案

分析 — 再現・実証(学習用) (cases/20260804-cve-2026-13934-4d10a8/)

ドキュメント内容
intake.md受付メタ、対象・バージョン範囲、着手条件、隔離要件、判断基準J1〜J4
patch_diff.md変更点・変更理由、パッチ前後の観察指標
root_cause.md核心原因の3層構造、前提P1〜P7、信頼境界
exploitability.md実証可能/不可の区別、観察経路、制約、拡散防止の境界
report.md再現検証の総合 — 静的対照の観測値、前後差分、J1〜J4の判定
followups.json後続提案

レポート (reports/20260804-cve-2026-13934-8400bc/)

ドキュメント内容
outline.md読者・目次・出典引用マップ(S1〜S15)
README.mdこのルートREADMEの昇格元ドラフト
docs-index.mddocs/ ドキュメント一覧・要約、昇格時の注意事項
followups.json後続提案

外部一次ソース(要旨)

  • CVE Record: https://www.cve.org/CVERecord?id=CVE-2026-13934
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-13934
  • ベンダー通知: Chrome Releases "Stable Channel Update for Desktop" (2026-06-30)
  • 修正コミット: https://dawn.googlesource.com/dawn/+/43055cbeadddca41a9c973a809f859d641077b2f

完全な一覧と発行日・識別子は2つの調査ラインの sources.md にあります。

タイプルート
調査research/
分析cases/
作業work/
レポートreports/

定期収集: research/topics/<topic>/

ルール(要約)

  • テキストのみコミット。バイナリ・ダンプ・スクリーンショット禁止。ファイル1個 ≤ 1 MiB。
  • 許可パス: research/ ・ cases/ ・ work/ ・ reports/ ・ docs/ ・ .laurelin/ ・ .github/
  • 人が直接コミットせず、ラウレリン作業プロジェクトで指示 → アウレがコミット。
  • 詳細規約: docs/conventions.md
ツールをダウンロード