Cайт веб-разработчика, программиста Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Предательство внутри V8. Chrome пропускал вредоносный код под видом надёжных инструкций

Иногда веб-уязвимость возникает не в самом коде сайта, а в том, как браузер превращает старые технологии в низкоуровневые инструкции, и именно такая ошибка затронула движок V8 в Chrome. Компания Exodus описала уязвимость CVE-2026-3542 (8.8 по шкале CVSS 3.1, AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H), которую Google исправила в выпуске браузера от 3 марта 2026 года.

Проблема находилась в обработчике AsmJS, строгом варианте JavaScript, который используют для быстрого выполнения кода, похожего на программы на C и C++. Внутри V8 такой код переводится в поток инструкций WebAssembly, а затем передаётся движку WebAssembly как уже подготовленный и доверенный набор команд.

Сбой возникал при разборе выражений для доступа к памяти AsmJS-модуля. Парсер сохранял позицию сдвига в общем состоянии, но при вложенных выражениях мог перезаписать сохранённое значение. В результате V8 обрезал поток WebAssembly-инструкций не в том месте, оставлял лишние байты и нарушал структуру кода.

В тестовой демонстрации специалисты показали, что такая рассинхронизация могла превратить часть числового значения в исполняемую инструкцию WebAssembly. Поскольку инструкции пришли из AsmJS-парсера, V8 не проверял их так же строго, как обычный WebAssembly-код, полученный напрямую из JavaScript.

Главный риск заключался в обходе песочницы Ubercage, которая должна ограничивать доступ к важным областям памяти. По оценке Exodus, уязвимость позволяла получить примитивы чтения и записи вне защитного барьера, а затем раскрыть адреса доверенной области памяти. Сведений о реальных атаках в источнике нет, описанная цепочка относится к техническому разбору и демонстрации эксплуатации.

Пользователям Chrome стоит убедиться, что браузер обновлён до версии с исправлением от 3 марта 2026 года или новее. Для снижения риска также помогает быстрый переход на свежие выпуски браузера, так как подобные ошибки затрагивают механизм выполнения кода внутри страниц.

SecurityLab