CVE-2020-1956

Apache Kylin

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

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

2022-03-25

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

Apache Kylin contains an OS command injection vulnerability which could permit an attacker to perform remote code execution.

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

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

Злоумышленник может внедрить произвольные команды операционной системы в определенные параметры HTTP-запросов к веб-интерфейсу Apache Kylin. Успешная эксплуатация позволяет выполнить код на сервере с правами пользователя, под которым работает Kylin.

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

Обновите Apache Kylin до версии, в которой уязвимость устранена.

  1. Определите текущую версию Kylin: bash # В каталоге установки Kylin выполните: cat version

  2. Обновитесь до одной из исправленных версий:

    • Apache Kylin 2.3.2 или новее (ветка 2.x)
    • Apache Kylin 2.6.5 или новее (ветка 2.x)
    • Apache Kylin 3.0.1 или новее (ветка 3.x)
    • Apache Kylin 3.1.2 или новее (ветка 3.x)
    • Apache Kylin 4.0.0 или новее (ветка 4.x)

    Процесс обновления: * Остановите работающий экземпляр Kylin. * Сделайте резервную копию текущей установки и базы данных метаданных. * Скачайте и распакуйте архив исправленной версии с официального сайта. * Перенесите конфигурационные файлы (kylin.properties, настройки данных источников) из резервной копии в новую установку. * Запустите обновленную версию и проверьте работоспособность.

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

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

  1. Ограничьте сетевой доступ:

    • Настройте брандмауэр (например, iptables или firewalld), чтобы разрешить доступ к портам Kylin (по умолчанию 7070 для веб-интерфейса) только с доверенных IP-адресов (например, сеть администраторов, BI-серверов). ```bash

    Пример для iptables (разрешить только с сети 10.1.1.0/24)

    iptables -A INPUT -p tcp --dport 7070 -s 10.1.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 7070 -j DROP ```

  2. Настройте WAF (Web Application Firewall):

    • Активируйте или настройте правила для блокировки HTTP-запросов, содержащих в параметрах символы или шаблоны, характерные для инъекций команд (например, ;, |, &, $(), \n, cat, bash, python).
  3. Минимизируйте привилегии:

    • Убедитесь, что служба Apache Kylin запущена от имени непривилегированного пользователя (не root), созданного специально для этой задачи. Это ограничит потенциальный ущерб от выполнения произвольного кода.