CVE-2017-5070
Google Chromium V8
2022-06-08
Google Chromium V8 Engine contains a type confusion vulnerability that allows a remote attacker to execute code inside a sandbox via a crafted HTML page. This vulnerability could affect multiple web browsers that utilize Chromium, including, but not limited to, Google Chrome, Microsoft Edge, and Opera.
Технический анализ и план устранения
Суть уязвимости
CVE-2017-5070 представляет собой критическую уязвимость типа Type Confusion (путаница типов) в движке JavaScript V8, который используется в браузере Google Chrome и других проектах на базе Chromium.
Проблема возникает в модуле оптимизации (JIT-компиляторе TurboFan) при обработке определенных операций с массивами и объектами. Из-за некорректного предположения о типе данных в памяти, злоумышленник может заставить движок интерпретировать данные одного типа как другой (например, рассматривать указатель как целое число или наоборот). Это позволяет обойти механизмы безопасности JavaScript, получить доступ к чтению и записи произвольных областей памяти внутри песочницы (sandbox) и, в конечном итоге, выполнить произвольный код (RCE) при посещении пользователем специально сформированной веб-страницы.
Как исправить
Основным способом устранения является обновление браузера или используемой библиотеки Chromium до версии, в которой данная уязвимость была закрыта (версия 58.0.3029.110 и выше).
Для пользователей Google Chrome (Linux/Debian/Ubuntu):
sudo apt update && sudo apt --only-upgrade install google-chrome-stable
Для системных администраторов (Windows/PowerShell - принудительное обновление через Winget):
winget upgrade --id Google.Chrome
Для разработчиков (обновление V8 в проекте):
Необходимо обновить исходный код V8 до версии, включающей коммит с исправлением в файле src/compiler/typer.cc. После обновления требуется пересборка проекта.
git fetch origin && git checkout 5.8.283.38
gclient sync
Временные меры
Если немедленное обновление браузера невозможно, рекомендуется применить следующие настройки для снижения риска эксплуатации:
- Включите строгую изоляцию сайтов (Site Isolation), чтобы ограничить потенциальное выполнение кода рамками одного процесса.
--enable-features=IsolateOrigins,site-per-process
- Отключите JIT-компиляцию (Just-In-Time compilation) в браузере. Это значительно снизит производительность JavaScript, но полностью заблокирует вектор атаки через TurboFan.
--js-flags="--no-opt"
-
Используйте политики ограничения запуска приложений (AppLocker или Windows Defender Exploit Guard) для контроля дочерних процессов браузера.
-
Ограничьте посещение недоверенных ресурсов и использование сторонних расширений до момента установки патча.