Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-2026-13934 — Структурированный репозиторий исследования уязвимостей для дефекта CWE-20 в Chrome Dawn WebGPU: первопричина, diff патча, статическая проверка, оценка критичности и уроки безопасности. | Kitploit
Инструменты/GitHubGitHub/artwiderobo/cve-2026-13934
Анализ уязвимостейАнализ КодаЭксплуатацияВеб-безопасностьСтатьи и ИсследованияОбучение и Образование
GitHubartwiderobo/cve-2026-13934

cve-2026-13934

Структурированный репозиторий исследования уязвимостей для дефекта CWE-20 в Chrome Dawn WebGPU: первопричина, diff патча, статическая проверка, оценка критичности и уроки безопасности.

Репозиторий
71 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-13934

Это репозиторий рабочего проекта. Исследование, анализ, работа и отчёты ведутся в одном репозитории (D088/D091).

Этот файл — входной документ репозитория и доски. Полный текст правил для папок и артефактов — см. docs/conventions.md. Тело документа (статус, выводы, ссылки) обновляется при повышении пункта отчёта (report). Агенты исследования, анализа и работы не изменяют корневой README.

Одной строкой: реализация WebGPU в Google Chrome — Dawn — при создании YCbCr-сэмплеров не проверяла ограничения параметров, требуемые спецификацией Vulkan, из-за чего атакующий, уже захвативший процесс рендерера, мог провести нарушающие спецификацию значения вплоть до GPU-процесса (CWE-20). Исправление добавляет два слоя: дополнительную проверку и принудительное применение ограничений в бэкенде; оно вошло в Chrome 150.0.7871.47.

Подробные учебные документы — в docs/cve-2026-13934/: они написаны так, чтобы причину, исправление, доказательства и уроки можно было проследить без воспроизведения.

Статус

Объект: CVE-2026-13934 — Google Chrome / Dawn (реализация WebGPU), тип уязвимости (Improper Input Validation). CVE опубликована 2026-06-30, версия исправления . Источник: §1, §2.

CWE-20
150.0.7871.47
research/20260804-cve-2026-13934-6bacf7/sources.md

Этапы работ — четыре направления: исследование (открытые источники) · исследование (патч/diff) · анализ (воспроизведение/доказательства) · отчёт (учебное обобщение); все четыре направления завершены.

НаправлениеСтатусПолученный результат
Исследование открытых источников и области воздействия (research/…-6bacf7/)Завершено (4 документа)Метаданные CVE/NVD/уведомления вендора, CWE/CVSS, границы затронутых версий, решения по критериям
Сравнение патча/diff (research/…-diff-92f928/)Завершено (4 документа)Идентифицирован исправляющий коммит, три уровня эталонов сравнения, дельта изменённых файлов и логики, оценка обхода/остаточного риска
Воспроизведение и доказательства (cases/…-4d10a8/)Завершено (6 документов) — выполнено статическое сравнение, наблюдений на уровне выполнения нетСтруктура причины, реализуемость и ограничения, результаты статического сравнения двух ревизий
Учебный отчёт (reports/…-8400bc/)Завершено (4 документа)Оглавление и карта цитирований, черновик корневого README, список документов docs/

Что подтверждено

  • Идентификатор и статус CVE (публичная), CNA (Chrome/Google), затронутый продукт (Google Chrome), затронутый компонент (Dawn).
  • Версия исправления 150.0.7871.47 и исправляющий коммит (Dawn 43055cbe…), три изменённых файла и причины изменений.
  • В уязвимой ревизии нет ни проверки ограничений спецификации, ни принудительного применения, ни регрессионных тестов, а в исправленной ревизии есть всё это — подтверждено статическим сравнением двух снимков Dawn, которые реально зафиксировал Chrome (cases/20260804-cve-2026-13934-4d10a8/report.md §3).

Что пока не подтверждено (мы не заполняли это предположениями)

  • Наблюдений на уровне выполнения нет — мы не собирали обе ревизии и не запускали юнит-тесты. Фактический вывод сообщений об ошибках проверки, параметры создаваемого VkSampler и сообщения VUID слоя проверки Vulkan — это ожидаемые значения, основанные на анализе кода (cases/…-4d10a8/report.md §4).
  • Затронутая платформа — в описании CVE указано «on Android», однако уведомление вендора, в котором содержится эта CVE, относится к каналу Desktop. Мы не проверяли, выполняется ли тот же путь в десктопной версии.
  • Границы затронутых версий — теги Chromium 150.0.7871.46, .47, .63 фиксируют одну и ту же ревизию Dawn, тогда как в CVE указано «prior to .47». Обоснование такой записи мы не подтвердили.
  • Полнота исправления — со стороны Dawn найден один коммит со ссылкой на этот баг, однако мы не проводили сплошную проверку сопутствующих изменений на стороне Chromium src.
  • Внутренний анализ вендора — issue Chromium 513006636 с описанием причины находится в состоянии ограниченного доступа.

Серьёзность — различается в зависимости от источника. Собственная оценка вендора (Chromium) — Medium, CVSS v3.1 от CISA-ADP — 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»). Находясь там, он может напрямую манипулировать межпроцессными командами, а не идти обычным путём веб-API, поэтому проверки на стороне рендерера находятся за пределами доверительной границы. А Vulkan-бэкенд Dawn работает в GPU-процессе с более высокими привилегиями, чем рендерер, — именно поэтому этот дефект становится поверхностью для выхода из песочницы.

Источник: cases/20260804-cve-2026-13934-4d10a8/root_cause.md §2 · подробнее: docs/cve-2026-13934/root-cause-and-fix.md

2. Исправление — не ограничились одним слоем проверки

Исправляющий коммит — Dawn 43055cbeadddca41a9c973a809f859d641077b2f («Add YCbCr sampler validation», 2026-05-27, Bug: 513006636) — изменяет три файла.

ИзменениеФайлХарактер
Добавлены 4 проверки режима адресации и maxAnisotropy для дескриптора YCbCrsrc/dawn/native/Sampler.cppПроверка на фронтенде — отклонение нарушающих запросов
Перезапись режима адресации и anisotropy значениями, соответствующими спецификации, на путях с преобразованием YCbCrsrc/dawn/native/vulkan/SamplerVk.cppПринудительное применение в бэкенде — нарушающее состояние не создаётся при любом входе
Добавлен регрессионный тест YCbCrSamplerRequiredParamssrc/dawn/tests/unittests/validation/YCbCrValidationTests.cppПредотвращение рецидива

Именно эта структура — ядро данной CVE. Поскольку предполагается, что рендерер уже скомпрометирован, одной проверки недостаточно; фактической линией блокировки становится второй слой, который принудительно применяет значения на стороне с более высокими привилегиями. Если свести это к фразе «проверка входных данных отсутствовала, поэтому её добавили», будет упущена суть проектирования защиты.

Объём изменений — 53 строки добавлено, 0 удалено — это патч, который дополняет недостающие проверки, не переделывая существующую логику.

Источник: research/20260804-cve-2026-13934-diff-92f928/report.md §3, §4 · cases/20260804-cve-2026-13934-4d10a8/patch_diff.md §4

3. Доказательства — проверено вплоть до статического уровня

Мы сопоставили исходный код двух снимков Dawn, которые реально зафиксировал Chrome.

Объект наблюденияУязвимая сторона 54b4153c…Исправленная сторона 01249a97…Уровень подтверждения
Число DAWN_INVALID_IF в блоке проверки YCbCr2 (гейт функции + неопределённый формат)6Измерено
Принудительное применение соответствующих спецификации значений в Vulkan-бэкендеНет (вплоть до связывания pNext)ЕстьИзмерено
Регрессионный тест YCbCrSamplerRequiredParamsНет (TEST_F 23 шт.)Есть (24 шт.)Измерено
device error при нарушающем запросеНе возникаетВозникаетОжидаемо (на основе анализа кода)

Что здесь выявилось: в уязвимой стороне ветка YCbCr и 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 можно отследить, даже если в ссылках 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Трёхуровневая структура причины и два слоя патча
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.mdМетаданные CVE/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Трёхуровневая структура основной причины, предпосылки 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.mdСписок и сводка документов docs/, примечания по повышению
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

Полный список, даты публикации и идентификаторы — в файлах sources.md обеих линий исследования.

ТипКорень
Исследованиеresearch/
Анализcases/
Работаwork/
Отчётreports/

Периодический сбор: research/topics/<topic>/

Правила (кратко)

  • Коммитить только текст. Бинарные файлы, дампы и скриншоты запрещены. Один файл ≤ 1 MiB.
  • Разрешённые пути: research/ · cases/ · work/ · reports/ · docs/ · .laurelin/ · .github/
  • Люди не коммитят напрямую: указание выдаётся в рабочем проекте Laurelin → коммитит Aule.
  • Полные правила: docs/conventions.md
Скачать инструмент