13 октября 2026 года ведущий инженер и ИИ-исследователь компании XBOW Брендан Долан-Гавитт представил технический разбор полной цепочки эксплойтов для браузера Chrome, которая принесла команде первые $250 000 по обновлённым в апреле 2026 года правилам программы вознаграждения Google VRP. Если до появления больших языковых моделей разработка подобного эксплойта отнимала у группы из 4 специалистов от 6 до 9 месяцев, то новую цепочку в подписанной сборке Chrome Beta удалось собрать с нуля всего за 6 дней со 2 по 7 августа 2026 года при затратах около $40 000 на запросы к API по архивным логам системы Codex. Вместо запуска одного универсального агента работу разделили на 5 параллельных направлений, где ИИ-агенты на базе ИИ-модели gpt-5.6-sol от OpenAI искали уязвимости в исходном коде, проверяли гипотезы и создавали прототипы для проверки концепции (PoC), а ИБ-исследователи XBOW задавали контекст, отбирали цели и проектировали модульные интерфейсы между этапами.
❗️ Цепочка эксплойтов преодолела защитные рубежи браузера за счёт нарушения инвариантов неизменяемости данных на стыке разных подсистем.
1️⃣ На первом этапе уязвимость деоптимизации в компиляторе Maglev внутри файла
maglev-code-generator.cc превратила изменяемый числовой объект HeapNumber в разделяемый литерал, что через метод Array.prototype.at() и перезапись метаданных Uint8Array открыло чтение и запись по всей 4-гигабайтной песочнице движка V8 (уязвимость 547819997, закрыта патчем 8255554). 2️⃣ На втором этапе эксплойт удалил активное представление
Uint8Array из списка отсоединения буфера при передаче данных в ImageDecoder и вызвал уязвимость времени проверки и времени использования (TOCTOU) в функции WEBPImageDecoder::DecodeSingleFrame(), подменив на лету кадр анимированного файла WebP для переполнения кучи PartitionAlloc и перезаписи структуры WebPIDecoder ради одной произвольной 64-битной записи вне песочницы V8 (уязвимость 548509153, исправлена патчами 8266257 и 8352899). Этого хватило для модификации базового адреса таблицы указателей кода Wasm и перехода на гаджет jmp rcx в библиотеке chrome.dll, который передал управление на собранный по технике «прыжков по островкам» примерно 70-байтный загрузчик из 13 64-битных констант в сгенерированном компилятором Liftoff коде Wasm.3️⃣ Поток переключил права страницы памяти с
PAGE_NOACCESS на PAGE_READWRITE прямо между ошибкой чтения ERROR_PARTIAL_COPY и повторным вызовом ReadProcessMemory() в функции ProcessMemoryWin::ReadUpTo(), за счёт чего переполнил буфер кучи, перезаписал таблицы виртуальных функций объекта SnapshotMinidumpMemoryWriter и в обход защит CET и CFG запустил команду cmd /k calc.exe через CreateProcessW (уязвимость 545820931, устранена патчем 8267322 с дополнительной проверкой в файле process_memory.cc).Модульная архитектура цепочки спасла проект в последний момент, когда первоначальный эксплойт для побега из песочницы V8 через компонент Gin оказался дубликатом ранее известного бага 542670566, и команда всего за несколько часов заменила его на запасную уязвимость в декодере WebP.
🙏 Если много букав и не хочется букавы читать, то вкратце:
Кейс наглядно показывает, что языковые модели довольно неплохо находят скрытые ошибки на стыке разных систем, потому что держат в памяти гигантские объёмы исходного кода и документации по системным API. Однако сейчас с помощью LLM код Chrome проверяют все подряд, включая саму Google, поэтому ИБ-исследователи всё чаще находят одни и те же уязвимости одновременно и теряют выплаты из-за дубликатов.
🤔Интересный факт: Сборка сложнейшего эксплойта для браузера подешевела до $40 000 и ускорилась с полугода до 6 дней, а значит порог входа в такие атаки резко упал. В итоге побеждать в этой гонке будут не просто пользователи базовых ИИ-моделей, а команды, которые научат ИИ-агентов собственным хитрым приёмам взлома и смогут на лету заменять запатченные уязвимости в цепочке на запасные.
✋ @Russian_OSINT
