CVE-2018-8298

ChakraCore ChakraCore scripting engine

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

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

2022-03-03

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

The ChakraCore scripting engine contains a type confusion vulnerability which can allow for remote code execution.

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

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

Уязвимость типа "путаница типов" (type confusion) в движке ChakraCore. Злоумышленник может создать специальный JavaScript-код, который, будучи обработанным уязвимым движком, приведет к неправильному обращению с объектами в памяти. Это позволяет обойти механизмы безопасности и выполнить произвольный вредоносный код на атакуемой системе.

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

Уязвимость устранена в обновленных версиях движка. Необходимо обновить среду, в которой используется ChakraCore.

  • Для Windows (в составе Microsoft Edge): Установите накопительное обновление безопасности для Microsoft Edge.

    • Номер обновления: KB4346877 (выпущено 10 июля 2018 г.)
    • Команда для проверки и установки: bash # Проверить установленные обновления Get-HotFix -Id KB4346877 # Установить через Windows Update Start-Process "ms-settings:windowsupdate"
  • Для Linux/исходного кода ChakraCore: Обновите ChakraCore до версии 1.10.1 или выше.

    • Команда для обновления (пример для систем на базе Debian/Ubuntu): bash # Остановите зависящие службы, затем: sudo apt update sudo apt install --only-upgrade libchakracore
    • Для сборки из исходников: Клонируйте репозиторий и переключитесь на исправленную версию. bash git clone https://github.com/Microsoft/ChakraCore.git cd ChakraCore git checkout v1.10.1

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

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

  1. Настройка WAF (Web Application Firewall):

    • Добавьте правило для блокировки HTTP-запросов, содержащих явные сигнатуры эксплойтов к CVE-2018-8298 (если такие известны и доступны для вашего WAF).
    • Пример общего правила (ModSecurity/CRS): SecRule REQUEST_URI|REQUEST_BODY "@rx chakracore.*exploit" \ "id:10001,phase:2,deny,status:403,msg:'CVE-2018-8298 exploit attempt'"
  2. Изоляция среды выполнения:

    • Запускайте приложения, использующие ChakraCore (например, Node.js с соответствующим модулем), в изолированных контейнерах (Docker) или виртуальных машинах с минимальными привилегиями.
  3. Ограничение доступа:

    • Если движок используется в серверном приложении, ограничьте сетевой доступ к нему только доверенным IP-адресам с помощью брандмауэра.
    • Пример правила iptables: bash iptables -A INPUT -p tcp --dport <PORT_APP> -s <TRUSTED_IP> -j ACCEPT iptables -A INPUT -p tcp --dport <PORT_APP> -j DROP

Важно: Временные решения лишь снижают риск атаки. Полное устранение уязвимости возможно только путем установки официального патча.