CVE-2016-5198

Google Chromium V8

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

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

2022-06-08

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

Google Chromium V8 Engine contains an out-of-bounds memory access vulnerability that allows a remote attacker to perform read/write operations, leading to code execution, 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-2016-5198 представляет собой критическую уязвимость типа Out-of-bounds (OOB) Write/Read в движке JavaScript V8, используемом в браузере Chromium. Проблема локализована в компоненте Crankshaft (устаревший JIT-компилятор).

Причиной является некорректная оптимизация и проверка границ при работе с типизированными массивами (TypedArrays). Злоумышленник может создать специально подготовленную HTML-страницу с вредоносным JavaScript-кодом, который обходит проверки безопасности движка. Это позволяет получить несанкционированный доступ к памяти процесса, что ведет к чтению конфиденциальных данных или выполнению произвольного кода (RCE) в контексте безопасности браузера.

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

Основным способом устранения является обновление кодовой базы Chromium до версии, где внесены соответствующие патчи в движок V8.

Для пользователей и администраторов: Необходимо обновить браузеры на базе Chromium до актуальных версий (Chrome 52.0.2743.82 или выше).

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

apt update && apt install --only-upgrade google-chrome-stable

Для системных администраторов (Windows/PowerShell): Если используется менеджер пакетов Chocolatey:

choco upgrade googlechrome

Для разработчиков (сборка из исходников): Необходимо применить патч к компоненту V8, который исправляет логику в src/crankshaft/arm64/lithium-codegen-arm64.cc (или соответствующих файлах других архитектур), либо обновить зависимость V8 в файле DEPS до версии, выпущенной после июля 2016 года.

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

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

1. Использование политик песочницы (Sandbox): Убедитесь, что браузер запускается с включенной песочницей. Никогда не используйте флаг --no-sandbox.

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

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

3. Ограничение выполнения JavaScript: Используйте расширения (например, uBlock Origin или NoScript) для блокировки выполнения JavaScript на недоверенных ресурсах.

4. Изоляция сайтов (Site Isolation): В современных версиях Chromium убедитесь, что включена функция строгой изоляции сайтов через политики предприятия (Chrome Enterprise Policy).

reg add "HKLM\SOFTWARE\Policies\Google\Chrome" /v "SitePerProcess" /t REG_DWORD /d 1 /f