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

Временные меры

Если немедленное обновление браузера невозможно, рекомендуется применить следующие настройки для снижения риска эксплуатации:

  1. Включите строгую изоляцию сайтов (Site Isolation), чтобы ограничить потенциальное выполнение кода рамками одного процесса.
--enable-features=IsolateOrigins,site-per-process

  1. Отключите JIT-компиляцию (Just-In-Time compilation) в браузере. Это значительно снизит производительность JavaScript, но полностью заблокирует вектор атаки через TurboFan.
--js-flags="--no-opt"

  1. Используйте политики ограничения запуска приложений (AppLocker или Windows Defender Exploit Guard) для контроля дочерних процессов браузера.

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