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 или новее.
-
Автоматическое обновление (рекомендуется): Браузер должен обновиться автоматически. Чтобы проверить и запустить обновление вручную:
- Откройте Chrome.
- Нажмите на три точки в правом верхнем углу → Настройки → Справка → О браузере Google Chrome.
- 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. Убедитесь, что установлены все последние обновления ОС.
Временное решение
Если немедленное обновление невозможно, примите следующие меры для снижения риска:
-
Ограничение доступа к браузеру (крайняя мера):
- Временно ограничьте запуск Google Chrome для пользователей, не требующих его для работы.
- Рассмотрите временный переход на альтернативный браузер (например, Firefox, Edge), обновлённый до актуальной версии.
-
Повышение осведомлённости и контроль:
- Предупредите пользователей: Запретите посещение непроверенных и подозрительных веб-сайтов.
- Используйте фильтрацию веб-трафика: Настройте прокси-сервер или шлюз безопасности (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;)
- Пример правила для Suricata/Snort (концепт):
-
Аппаратное обеспечение (DEP/ASLR): Убедитесь, что на всех системах Windows включены и функционируют технологии Data Execution Prevention (DEP) и Address Space Layout Randomization (ASLR). Это не предотвратит эксплуатацию, но усложнит её. Проверить DEP можно так:
bash wmic OS Get DataExecutionPrevention_SupportPolicy(Значение2или3указывает на активную поддержку DEP).
Важно: Временные решения носят ограничительный характер и не заменяют установку обновления. Патч должен быть применён как можно скорее.