FixVibe
Covered by FixVibehigh

Удаленное выполнение кода в SPIP через теги шаблона (CVE-2016-7998)

SPIP версий 3.1.2 и более ранних содержит уязвимость в компоновщике шаблонов. Аутентифицированные злоумышленники могут загружать HTML-файлы со специально созданными тегами INCLUDE или INCLURE для выполнения произвольного PHP-кода на сервере.

CVE-2016-7998CWE-20

Влияние

Аутентифицированный злоумышленник может выполнить произвольный PHP-код на базовом веб-сервере [S1]. Это позволяет полностью скомпрометировать систему, включая утечку данных, изменение содержимого сайта и горизонтальное перемещение внутри среды хостинга [S1].

Основная причина

Уязвимость существует в компонентах композитора и компилятора шаблона SPIP [S1]. Система не может должным образом проверить или очистить вводимые данные в определенных тегах шаблона при обработке загруженных файлов [S1]. В частности, компилятор неправильно обрабатывает созданные теги INCLUDE или INCLURE внутри HTML-файлов [S1]. Когда злоумышленник получает доступ к этим загруженным файлам с помощью действия valider_xml, вредоносные теги обрабатываются, что приводит к выполнению PHP-кода [S1].

Затронутые версии

  • SPIP версии 3.1.2 и все предыдущие версии [S1].

Исправление

Чтобы устранить эту уязвимость, обновите SPIP до версии выше 3.1.2. [S1]. Убедитесь, что права на загрузку файлов строго ограничены доверенными администраторами и что загруженные файлы не хранятся в каталогах, где веб-сервер может выполнять их как сценарии [S1].

Как FixVibe проверяет это

FixVibe может обнаружить эту уязвимость двумя основными способами:

  • Пассивный отпечаток пальца. Анализируя заголовки HTTP-ответов или определенные метатеги в исходном HTML-коде, FixVibe может определить работающую версию SPIP [S1]. Если версия 3.1.2 или ниже, это вызовет предупреждение высокой серьезности [S1].
  • Сканирование репозитория. Для пользователей, подключающих свои репозитории GitHub, сканер репозитория FixVibe может проверять файлы зависимостей или константы, определяющие версию, в исходном коде SPIP для выявления уязвимых установок [S1].