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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-78938 — Анализ первопричины и рабочий эксплойт для CVE-2026-78938 — путаницы типов в V8 TurboFan, приводящей к произвольному чтению/записи в пределах сжатой кучи. Включает PoC для воспроизведения сбоя и примитивы с адресацией во время выполнения. | Kitploit
Инструменты/GitHubGitHub/eddinos2/cve-2026-78938
Анализ уязвимостейЭксплуатацияВеб-безопасностьЭксплуатация Бинарных Файлов
GitHubeddinos2/cve-2026-78938

CVE-2026-78938

Анализ первопричины и рабочий эксплойт для CVE-2026-78938 — путаницы типов в V8 TurboFan, приводящей к произвольному чтению/записи в пределах сжатой кучи. Включает PoC для воспроизведения сбоя и примитивы с адресацией во время выполнения.

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

Популярное

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

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

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

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

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

CVE-2026-78938 — V8 TurboFan CheckMaps type confusion при миграции экземпляров

Анализ первопричины и эксплойт для CVE-2026-78938, type confusion в устранении загрузок TurboFan в V8, исправленная в Chrome 152.0.7977.64 (V8 15.2.124.18). Ошибка была зарегистрирована как эксплуатируемая в реальных атаках.

Эксплойт превращает ошибку в выход за границы Float64Array, а затем в addrof / fakeobj и произвольное чтение/запись по сжатой куче V8. Всё после начальной записи определяется во время выполнения — в стадии чтения/записи нет жёстко заданных смещений кучи.

  • Затронуто: Chrome 152.0.7977.54 (V8 15.2.124.13, коммит 8ec91943)
  • Исправлено: Chrome 152.0.7977.64/.65 (V8 15.2.124.18, коммит 6aacaf62)
  • Коммит исправления: 50597b0bb48a — "[compiler] Invalidate tracked fields on CheckMaps with instance migration"

Протестировано на macOS arm64 с локально собранным d8 обеих версий.

Содержимое

файлчто это
pocs/crash.jsМинимальный триггер. SIGBUS на уязвимой сборке, чистое завершение на исправленной.
pocs/rw_final.jsПолный эксплойт, этап 1: триггер + массив OOB. Заморожен — см. «Воспроизведение» ниже.
pocs/logic_final.jsПолный эксплойт, этап 2: addrof/fakeobj/произвольное чтение/запись, загружается во время выполнения этапом 1.
WRITEUP.mdПолный анализ первопричины и заметки по эксплуатации.

Воспроизведение

Соберите две версии d8 (точные коммиты и аргументы GN см. в WRITEUP.md), затем из корня репозитория:

root@kitploit:~
# PoC краха: SIGBUS на уязвимой, чистое завершение на исправленной
out/vuln/d8    --allow-natives-syntax --homomorphic-ic --max-valid-polymorphic-map-count=4 pocs/crash.js
out/patched/d8 --allow-natives-syntax --homomorphic-ic --max-valid-polymorphic-map-count=4 pocs/crash.js

# полное чтение/запись: работает на уязвимой, чисто завершается на исправленной
out/vuln/d8 --allow-natives-syntax --homomorphic-ic --max-valid-polymorphic-map-count=4 pocs/rw_final.js

Ожидаемый вывод на уязвимой сборке:

root@kitploit:~
[+] OOB Float64Array len=0x7f000004
[+] after write: victim2.z = 2.5
[+] fakeobj(hn|1) typeof=number
[+] ALL PRIMITIVES VERIFIED

Важны две вещи:

  1. Флаги обязательны. --homomorphic-ic --max-valid-polymorphic-map-count=4 формируют полиморфную обратную связь по картам так, чтобы путь миграции выполнялся в оптимизированном коде. Без них триггер молча ничего не делает.
  2. pocs/rw_final.js побайтово заморожен. Единственная повреждающая запись попадает в смещение относительно кучи, которое зависит от того, где размещён массив-жертва, а это, в свою очередь, зависит от точных байтов и пути скрипта. Редактирование файла (или его переименование) делает встроенное смещение недействительным; в WRITEUP.md описано, как выполнить повторную калибровку. pocs/logic_final.js загружается после срабатывания триггера, поэтому его можно свободно редактировать.

Примечания

  • Продемонстрированный примитив — произвольное чтение/запись внутри песочницы V8 (сжатая куча). Для получения выполнения кода дополнительно требуется выход из песочницы (например, повреждение RWX-области кода экземпляра Wasm), что выходит за рамки данного описания.
  • Все адреса в эксплойте определяются во время выполнения. Единственное встроенное значение — смещение одной записи в pocs/rw_final.js, по причинам, указанным выше.

Этот репозиторий предназначен для образовательных и защитных исследований. Ошибка исправлена в текущем Chrome; подробности публично доступны в исходном коде V8.

Скачать инструмент