CVE-2018-17463

Google Chromium V8

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2022-06-08

Официальное описание

Google Chromium V8 Engine contains an unspecified 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-2018-17463 представляет собой критическую уязвимость типа «Type Confusion» (смешение типов) в JIT-компиляторе TurboFan движка V8. Проблема возникает на этапе оптимизации кода, когда компилятор некорректно обрабатывает побочные эффекты (side effects) определенных операций.

В частности, при выполнении некоторых методов (например, Object.create) TurboFan ошибочно полагает, что структура объекта не изменилась, и продолжает использовать устаревшую информацию о типах из кэша. Это позволяет злоумышленнику: 1. Добиться несоответствия между реальным типом объекта в памяти и типом, который ожидает компилятор. 2. Получить примитивы произвольного чтения и записи в памяти процесса (AAR/AAW). 3. Выполнить произвольный код (RCE) внутри песочницы браузера через специально подготовленную HTML-страницу.

Как исправить

Основным способом устранения является обновление движка V8 до версии, в которой исправлена логика проверки побочных эффектов в TurboFan. Для конечных пользователей и администраторов это означает обновление браузеров на базе Chromium до актуальных версий.

Для пользователей Google Chrome (Linux/Windows/macOS): Обновите браузер до версии 70.0.3538.67 или выше.

Для системных администраторов (Linux/Debian/Ubuntu):

apt update && apt upgrade -y google-chrome-stable

Для разработчиков, использующих V8 как отдельный компонент: Необходимо применить патч, который помечает операции, изменяющие структуру объектов, флагом kNoWrite, заставляя компилятор выполнять повторную проверку типов. Перейдите в директорию исходного кода V8 и обновитесь до тега 7.0.276.28 или выше.

git checkout 7.0.276.28
gclient sync

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

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

Отключение JIT-компиляции (TurboFan): Запуск браузера с флагом, отключающим оптимизацию, полностью нейтрализует вектор атаки, так как уязвимость находится именно в оптимизирующем компиляторе.

google-chrome --js-flags="--no-opt"

Использование политик изоляции сайтов (Site Isolation): Включите строгую изоляцию сайтов, чтобы минимизировать риск кражи данных между доменами в случае успешной эксплуатации внутри песочницы.

google-chrome --enable-features=IsolateOrigins,site-per-process

Ограничение доступа: Используйте средства контроля доступа (например, AppArmor или SELinux) для ограничения прав процесса рендеринга в операционной системе, чтобы предотвратить выход за пределы песочницы.