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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-85046 — # Proof-of-concept и технический анализ для CVE-2026-85046, type confusion в V8 в inline Array.prototype.sort, включая первопричину, diff патча и цепочку эксплуатации для Chrome < 152.0.7977.82. | Kitploit
Инструменты/GitHubGitHub/atiilla/cve-2026-85046
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийАнализ Бинарных ФайловСтатьи и ИсследованияОбучение и Образование
GitHubatiilla/cve-2026-85046

CVE-2026-85046

# Proof-of-concept и технический анализ для CVE-2026-85046, type confusion в V8 в inline Array.prototype.sort, включая первопричину, diff патча и цепочку эксплуатации для Chrome < 152.0.7977.82.

Репозиторий
742720 дней назадЕщё не проверено
Сайт

Популярное

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

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

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

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

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

CVE-2026-85046

Путаница типов (type confusion) в V8 при инлайн-оптимизации Array.prototype.sort (Maglev + Turbofan). Шестой zero-day Chrome в 2026 году.

ПолеЗначение
CVSS8.8 (High)
CWECWE-843 (Type Confusion)
КомпонентV8 JavaScript Engine -- Maglev/Turbofan inline sort
ЗатронутыChrome < 152.0.7977.82, все браузеры на Chromium
ИсправленоChrome 152.0.7977.82 (2026-09-03)
Коммит исправленияe0562d87ad9c17042b581582c99237d798572e67
CISA KEVДобавлено 2026-09-04, срок 2026-09-18
Эксплуатация в дикой природеДа (подтверждено Google)
Автор отчётаSalvatore Gulizia (Serotav)

Первопричина

Инлайн-оптимизация sort принимает полиморфную обратную связь по element-kind (PACKED_SMI_ELEMENTS + PACKED_ELEMENTS). Когда компаратор вызывает arr.fill(0), V8 мигрирует map получателя назад с PACKED_ELEMENTS на PACKED_SMI_ELEMENTS. Проверка map после сортировки проходит, потому что PACKED_SMI_ELEMENTS был в исходном наборе обратной связи. Обратная запись (copy-back) записывает указатели на объекты в массив, чья map заявляет элементы только типа SMI.

Исправление добавляет предусловие, требующее, чтобы все map получателя в обратной связи имели одинаковый elements_kind перед инлайн-оптимизацией sort.

Файлы

ФайлОписание
patch-analysis.mdПолный анализ диффа патча с первопричиной, механизмом триггера и оценкой примитивов эксплуатации
patch-analysis.jsonСтруктурированные данные: хэши коммитов, CWE, затронутые версии, примитивы эксплуатации
v8-research.mdГлубокое погружение в element kinds V8, предыдущие PoC (CVE-2020-6418, CVE-2025-2135, CVE-2024-4947 и др.), архитектура песочницы, техники побега
poc-minimal.jsМинимальный триггер путаницы типов для d8 (d8 --allow-natives-syntax poc-minimal.js)
poc.htmlПолная цепочка эксплуатации: путаница типов, примитив addrof, heap spray, fakeobj через перекрытие backing store, утечка информации
exploit-notes.mdТехническое описание: пошаговая цепочка, схемы раскладки кучи, сжатие указателей, влияние песочницы, индикаторы обнаружения, устранение

Быстрый старт

Минимальный триггер (d8)

root@kitploit:~
# С V8 debug helpers
d8 --allow-natives-syntax poc-minimal.js

# Без них (эвристическая проверка через String())
d8 poc-minimal.js

Полный PoC (браузер)

Откройте poc.html в Chrome < 152.0.7977.82. Эксплойт запускается автоматически и логирует каждый этап на страницу и в консоль разработчика. Этапы:

  1. JIT-обучение с полиморфной обратной связью по element-kind (2000 итераций)
  2. Триггер путаницы типов через arr.fill(0) в компараторе sort
  3. Примитив addrof -- утечка сжатых указателей кучи как целых чисел
  4. Heap spray для перекрытия backing store массивов double/object
  5. fakeobj через перекрытие -- создание ссылок на объекты из контролируемых целых чисел
  6. Утечка информации -- вывод адресов экземпляра WebAssembly, window, document

Сводка цепочки эксплуатации

root@kitploit:~
Обучение (2000 итераций)
  |
  v
Путаница типов: map PACKED_ELEMENTS -> map PACKED_SMI_ELEMENTS
                (backing store всё ещё содержит указатели на объекты)
  |
  v
addrof: String(confused_array) утекает указатели как целые числа
  |
  v
fakeobj: перекрытие массивов double/object записывает контролируемый указатель
  |
  v
Фейковый JSArray с контролируемым указателем elements -> произвольное R/W (внутри каге)
  |
  v
Выполнение кода внутри песочницы V8 (требуется побег из песочницы для полного RCE)

Ключевые технические детали

  • Длина массива должна быть <= 16 (kMaxInlineSortLength)
  • Требуется ~1000-2000 итераций для оптимизации Maglev/Turbofan
  • Компаратор должен вызывать arr.fill() со значениями SMI для обратной миграции map
  • Во время обучения должны передаваться как массивы PACKED_SMI, так и PACKED_ELEMENTS
  • addrof утекает 32-битные сжатые указатели (относительно каге, не полный 64-битный VA)
  • Песочница кучи V8 ограничивает эксплуатацию внутрикаговым R/W без второй уязвимости

Ссылки

  • Баг Chromium: crbug/542403045 (ограниченный доступ)
  • Коммит исправления: e0562d87
  • Вводящий коммит: 66a3f1e9
  • Статья Serotav: https://serotav.github.io/Writeups/v8/when-sorting-leads-to-confusion/
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-85046
Скачать инструмент