CVE-2020-15999

Google Chrome FreeType

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

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

2021-11-03

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

Google Chrome uses FreeType, an open-source software library to render fonts, which contains a heap buffer overflow vulnerability in the function Load_SBit_Png when processing PNG images embedded into fonts. This vulnerability is part of an exploit chain with CVE-2020-17087 on Windows and CVE-2020-16010 on Android.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость (CVE-2020-15999) — это переполнение буфера в куче (heap buffer overflow) в библиотеке FreeType, которую использует Google Chrome для отображения шрифтов. Ошибка находится в функции Load_SBit_Png, обрабатывающей PNG-изображения, встроенные в шрифты (например, в формате WOFF).

  • Как это используют: Злоумышленник может создать специальный вредоносный веб-сайт или скомпрометировать легитимный, разместив на нём шрифт со встроенным вредоносным PNG-изображением.
  • Что происходит: Когда пользователь заходит на такую страницу в уязвимом Chrome, браузер пытается обработать этот шрифт, что приводит к переполнению буфера в памяти. Это позволяет атакующему выполнить произвольный код на компьютере жертвы с правами текущего пользователя. На Windows эта уязвимость использовалась в связке с CVE-2020-17087 для повышения привилегий.

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

Решение — обновить Google Chrome до версии, в которой уязвимость исправлена.

  • Для всех ОС (Windows, macOS, Linux): Установите Google Chrome версии 86.0.4240.111 или новее.
  • Автоматическое обновление (рекомендуется): Браузер должен обновиться автоматически. Чтобы проверить и запустить обновление вручную:

    1. Откройте Chrome.
    2. Нажмите на три точки в правом верхнем углу → НастройкиСправкаО браузере Google Chrome.
    3. Chrome начнёт проверку и установку обновлений. После перезагрузки браузера версия должна быть не ниже 86.0.4240.111.
  • Для Linux (через терминал, пример для Debian/Ubuntu): bash sudo apt update sudo apt install --only-upgrade google-chrome-stable После обновления убедитесь в версии: bash google-chrome --version

  • Для Windows (через Центр обновления): Обновление для Chrome также может поставляться через Центр обновления Windows. Убедитесь, что установлены все последние обновления ОС.

Временное решение

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

  1. Ограничение доступа к браузеру (крайняя мера):

    • Временно ограничьте запуск Google Chrome для пользователей, не требующих его для работы.
    • Рассмотрите временный переход на альтернативный браузер (например, Firefox, Edge), обновлённый до актуальной версии.
  2. Повышение осведомлённости и контроль:

    • Предупредите пользователей: Запретите посещение непроверенных и подозрительных веб-сайтов.
    • Используйте фильтрацию веб-трафика: Настройте прокси-сервер или шлюз безопасности (SWG) на блокировку загрузки файлов шрифтов (.woff, .woff2, .ttf, .otf) с непроверенных внешних ресурсов. Это нарушит отображение некоторых сайтов, но значительно снизит риск атаки.
      • Пример правила для Suricata/Snort (концепт): alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"Потенциальная попытка использования CVE-2020-15999 - загрузка шрифта"; http.header; content:"Content-Type|3a|"; pcre:"/font|woff|ttf|otf/i"; sid:1000001; rev:1;)
  3. Аппаратное обеспечение (DEP/ASLR): Убедитесь, что на всех системах Windows включены и функционируют технологии Data Execution Prevention (DEP) и Address Space Layout Randomization (ASLR). Это не предотвратит эксплуатацию, но усложнит её. Проверить DEP можно так: bash wmic OS Get DataExecutionPrevention_SupportPolicy (Значение 2 или 3 указывает на активную поддержку DEP).

Важно: Временные решения носят ограничительный характер и не заменяют установку обновления. Патч должен быть применён как можно скорее.