CVE-2020-10221

rConfig rConfig

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

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

2021-11-03

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

rConfig lib/ajaxHandlers/ajaxAddTemplate.php contains an OS command injection vulnerability that allows remote attackers to execute OS commands via shell metacharacters in the fileName POST parameter.

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

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

Уязвимость в файле lib/ajaxHandlers/ajaxAddTemplate.php позволяет удаленному злоумышленнику выполнить произвольные команды на операционной системе сервера. Для этого он отправляет POST-запрос с параметром fileName, содержащим shell-метасимволы (например, ;, &, |, >). Эти символы интерпретируются оболочкой сервера, что приводит к выполнению инъектированной команды.

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

Основной метод: Обновите rConfig до версии, в которой уязвимость устранена. Уязвимость затрагивает версии до 3.9.4. Патч был внесен в версии 3.9.4 и выше.

  1. Проверьте текущую версию rConfig. bash # Способ проверки зависит от метода установки. # Например, посмотрите в интерфейсе администратора или проверьте файлы в каталоге установки.

  2. Обновите rConfig.

    • Способ 1 (Рекомендуемый): Следуйте официальному руководству по обновлению на сайте rConfig.
    • Способ 2 (Вручную): Скачайте последнюю стабильную версию (3.9.4 или новее) с официального GitHub-репозитория и выполните процедуру обновления, описанную в документации (UPDATE.md или INSTALL.md).
  3. Проверьте исправление. Убедитесь, что файл lib/ajaxHandlers/ajaxAddTemplate.php теперь корректно валидирует и экранирует пользовательский ввод в параметре fileName.

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

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

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

    • Настройте брандмауэр (например, iptables или nftables) или группы безопасности (Security Groups) в облаке, чтобы разрешить доступ к веб-интерфейсу rConfig только с доверенных IP-адресов (например, административных сетей). ```bash

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

    iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -p tcp --dport 443 -j DROP ```

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

    • Если используется WAF (например, ModSecurity для Apache/Nginx, облачный WAF), добавьте правило для блокировки запросов к /lib/ajaxHandlers/ajaxAddTemplate.php, содержащих в POST-параметрах shell-метасимволы (;, &, |, `, $()).
  3. Временно отключите уязвимый обработчик (крайняя мера):

    • Переименуйте или удалите уязвимый файл, если функционал добавления шаблонов не критичен. Перед этим сделайте резервную копию. bash cd /path/to/rconfig/lib/ajaxHandlers/ mv ajaxAddTemplate.php ajaxAddTemplate.php.disabled
    • Это приведет к ошибке при попытке использования данной функции через веб-интерфейс.