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
- Команда для обновления (пример для систем на базе Debian/Ubuntu):
Временное решение
Если немедленное обновление невозможно, примените ограничивающие меры:
-
Настройка 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'"
-
Изоляция среды выполнения:
- Запускайте приложения, использующие ChakraCore (например, Node.js с соответствующим модулем), в изолированных контейнерах (Docker) или виртуальных машинах с минимальными привилегиями.
-
Ограничение доступа:
- Если движок используется в серверном приложении, ограничьте сетевой доступ к нему только доверенным 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
Важно: Временные решения лишь снижают риск атаки. Полное устранение уязвимости возможно только путем установки официального патча.