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

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

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

  1. Включите строгую изоляцию сайтов (Site Isolation), чтобы каждый веб-сайт запускался в отдельном процессе.
  2. Отключите выполнение JIT-компиляции JavaScript, если это позволяет инфраструктура (параметр --js-flags="--jitless").
  3. Используйте групповые политики (GPO) для принудительного обновления браузеров во всей корпоративной сети.
  4. Ограничьте посещение непроверенных ресурсов и использование расширений из сторонних источников.

Запуск Chrome с отключенным JIT (Windows):

Start-Process "chrome.exe" "--js-flags='--jitless'"

Запуск Chrome с отключенным JIT (Linux):

google-chrome --js-flags="--jitless"