CVE-2018-17480
Google Chromium V8
2022-06-08
Google Chromium V8 Engine contains out-of-bounds write 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-17480 представляет собой критическую уязвимость типа Out-of-bounds Write (запись за пределами границ буфера) в движке JavaScript V8, используемом в браузере Chromium. Проблема возникает из-за некорректной обработки элементов в массивах или объектах при выполнении оптимизированного JIT-кода (Just-In-Time compilation).
Злоумышленник может создать специально подготовленную HTML-страницу, содержащую вредоносный JavaScript-код. При посещении такой страницы происходит повреждение памяти, что позволяет атакующему выйти за пределы логических границ объектов и выполнить произвольный код в контексте процесса рендеринга (внутри песочницы браузера). В сочетании с другими уязвимостями это может привести к полному захвату контроля над целевой системой.
Как исправить
Основным способом устранения уязвимости является обновление браузера или компонента, использующего движок V8, до версии, в которой данная ошибка была исправлена (версия 7.0.276.40 и выше).
Для пользователей Google Chrome (Linux/Debian/Ubuntu):
sudo apt update && sudo apt upgrade google-chrome-stable
Для пользователей Google Chrome (Windows - PowerShell):
Start-Process "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --check-for-update
Для администраторов (проверка версии через реестр Windows):
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object { $_.DisplayName -eq "Google Chrome" } | Select-Object DisplayName, DisplayVersion
Для разработчиков (обновление V8 в проекте):
Необходимо обновить зависимости в файле DEPS вашего проекта на базе Chromium и выполнить пересборку.
gclient sync
Временные меры
Если немедленное обновление невозможно, рекомендуется применить следующие настройки для снижения риска эксплуатации:
- Включите строгую изоляцию сайтов (Site Isolation), чтобы каждый веб-сайт запускался в отдельном процессе.
- Отключите выполнение JIT-компиляции JavaScript, если это позволяет инфраструктура (параметр
--js-flags="--jitless"). - Используйте групповые политики (GPO) для принудительного обновления браузеров во всей корпоративной сети.
- Ограничьте посещение непроверенных ресурсов и использование расширений из сторонних источников.
Запуск Chrome с отключенным JIT (Windows):
Start-Process "chrome.exe" "--js-flags='--jitless'"
Запуск Chrome с отключенным JIT (Linux):
google-chrome --js-flags="--jitless"