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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-6307 — PoC для Google Chrome CVE-2026-6307 | Kitploit
Инструменты/GitHubGitHub/0xsha/cve-2026-6307
Анализ уязвимостейЭксплуатацияШелл-кодЭксплуатация веб-приложенийОбучение и ОбразованиеГенерация ШеллкодаРазработка Полезной НагрузкиЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHub0xsha/cve-2026-6307

CVE-2026-6307

PoC для Google Chrome CVE-2026-6307

531372 месяцев назадПроверено Kitploit
Репозиторий

Популярное

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

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

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

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

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

CVE-2026-6307: Путаница типов V8 JS-to-Wasm → RCE на Chrome 146

Локальное воспроизведение и эксплуатация путаницы типов при деоптимизации V8 JS-to-Wasm, описанной Nebula, доведённая до запуска xcalc из рендерера Chrome for Testing 146.0.7680.165 (ошибка исправлена в 147.0.7727.101).

Все полезные нагрузки безвредны (калькулятор / exit(0x42) / jmp $). Всё запускается против намеренно устаревшего браузера в локальной лаборатории — не направляйте это на кого-либо ещё.

Demo

https://github.com/user-attachments/assets/d450f064-ba52-4f39-a88b-367f31217143

Ошибка

JSToWasmFrameStateFunctionInfo's equality operator omits the Wasm signature comparison, so CSE/GVN merges frame states that differ only in signature. A lazy deopt then materializes a Wasm as a tagged (and vice-versa), giving a full 64-bit / whose pointers are cage-compressed (Wasm refs use the tagged register representation, returned via ).

Скачать инструмент
i64
externref
addrof
fakeobj
not
kReturnRegister0

Всё ниже было проверено вживую на 146.0.7680.165. Числа на загрузку — это измеренные показатели попаданий за несколько запусков (путаница чувствительна к GC; каждая страница перезапускается на грязной сборке). Ни один запуск не дал ложноположительного результата.

Примитивы без флагов — без --allow-natives-syntax

Большинство PoC для ошибок V8 форсируют оптимизацию с помощью %OptimizeFunctionOnNextCall — тестовой встроенной функции, доступной только через --allow-natives-syntax, которую ни одна реальная жертва не включает. Эти примеры используют ошибку вообще без флагов, формируя обратную связь прогрева так, чтобы путаница при деоптимизации срабатывала естественно. Каждый адрес утекает во время выполнения — ничего не захардкожено. Запускайте их в безголовом режиме без флагов.

ФайлДоказываетПроверено
flag-free/00-reachability-flagfree.htmlзапускает путанное состояние; срабатывает на уязвимой 146, не на исправленной 1476/15 на загрузку
flag-free/01-primitives-flagfree.htmladdrof / fakeobj (fakeobj(addrof(o))===o)8/12
flag-free/02-store-flagfree.htmlзапись вне клетки помещает выбранное значение в выбранный объект12/12
flag-free/03-arw-flagfree.htmlвнутриклеточные read64 / write64 (фальшивый массив PACKED_DOUBLE)2/12 (нестабильно, повторите)

Видимое RCE — сборка без ASLR

rce-no-aslr/ доводит до выполнения кода: оптимизированная JS-функция g размещает шеллкод execve в виде JIT-литералов двойной точности (константы movabs, каждая заканчивается на eb rel8 для сцепления со следующей), путанная запись патчит nop; jmp в код g, и вызов g() направляет RIP в шеллкод.

ФайлДоказываетПроверено
rce-no-aslr/exploit-calc.htmlоткрывает настоящее окно xcalc через execve из рендерераоткрывается через ~1 с на чистом листе
rce-no-aslr/exploit-exit.htmlрендерер выполняет внедрённый шеллкод для exit(66); #jmp вращает RIP внутри негоexit(66) 8/8 (strace)

Эта сборка использует --allow-natives-syntax (%Optimize фиксирует JIT-нагрузку g, чтобы деоптимизация-GC не могла её сбросить) и --no-memory-protection-keys (чтобы путанная запись могла пропатчить JIT-страницу — иначе PKU V8 помечает её как readonly). ASLR отключён (randomize_va_space=0), поэтому адреса детерминированы (A_MAP = 0x5555bbc0128a). Рендерер также требует --disable-seccomp-filter-sandbox --no-zygote, потому что иначе seccomp блокирует execve из шеллкода.

Запуск

Native x86_64 Linux, ASLR выключен, Chrome 146 в PATH, X-дисплей на :0 (Xvfb или реальный X). rce-no-aslr/run.sh устанавливает все флаги и раздаёт через http.

root@kitploit:~
cd rce-no-aslr
./run.sh calc          # открывает настоящий xcalc через http://127.0.0.1:8080, на :0
./run.sh exit          # strace подтверждает exit(66) рендерера
./run.sh jmp           # gdb подтверждает RIP внутри внедрённого шеллкода
./demo.sh calc            # чистый лист + авто-повтор, полноразмерный браузер с головой (для записи)
./demo.sh msgbox          # то же, но всплывает брендированное окно "0xSha :: pwned"

pocmode.sh calc|msgbox переключает, что запускает RCE через execve("/usr/bin/xcalc") (настоящий калькулятор против брендированного окна). Примитивы без флагов просто требуют браузер:

root@kitploit:~
chrome --headless=new --no-sandbox http://127.0.0.1:8080/flag-free/01-primitives-flagfree.html

Структура

root@kitploit:~
flag-free/   вклад без флагов (НЕТ --allow-natives-syntax)
  00-reachability   триггер + разница патча (уязвимая 146 против исправленной 147)
  01-primitives     addrof / fakeobj
  02-store          запись вне клетки
  03-arw            внутриклеточные read64 / write64
rce-no-aslr/ видимое RCE (детерминированная сборка без ASLR)
  exploit-calc.html / exploit-exit.html
  run.sh, demo.sh, pocmode.sh, xcalc-msgbox.sh

Описание ошибки и первопричины: Nebula Security (ссылка выше). Триггер без флагов, примитивы и видимые эксплойты в этом репозитории являются воспроизведениями/расширениями, проверенными в локальной лаборатории.