CVE-2022-35914
Teclib GLPI
2023-03-07
Teclib GLPI contains a remote code execution vulnerability in the third-party library, htmlawed.
Технический анализ и план устранения
Суть уязвимости
CVE-2022-35914 — это критическая уязвимость типа Remote Code Execution (RCE), обнаруженная в системе управления ИТ-активами GLPI. Проблема кроется в сторонней библиотеке htMlaWed, которая поставляется вместе с дистрибутивом GLPI.
Уязвимость содержится в файле vendor/htmlawed/htmlawed/htMlaWedTest.php. Этот файл предназначен для тестирования библиотеки и позволяет передавать произвольный PHP-код через параметры запроса. Злоумышленник может отправить специально сформированный HTTP-запрос к этому скрипту, что приведет к выполнению произвольных команд на сервере с правами веб-пользователя (например, www-data). Наличие авторизации в GLPI для эксплуатации не требуется.
Как исправить
Наиболее надежным способом устранения уязвимости является обновление GLPI до актуальной стабильной версии, где уязвимый файл удален из состава поставки.
- Сделайте резервную копию базы данных и файлов приложения.
- Обновите GLPI до версии 10.0.3 или выше.
- Если вы используете старую ветку 9.x, обновитесь до версии 9.5.9 или выше.
Команда для обновления через консоль (в директории GLPI):
php bin/console db:update
Временные меры
Если немедленное обновление всей системы невозможно, необходимо вручную ограничить доступ к уязвимому файлу или удалить его.
Вариант 1: Удаление уязвимого файла (Рекомендуется) Удалите файл тестов библиотеки htmlawed, так как он не требуется для работы системы в продуктивной среде.
rm vendor/htmlawed/htmlawed/htMlaWedTest.php
Вариант 2: Блокировка доступа через веб-сервер (Apache)
Добавьте правило в конфигурацию виртуального хоста или в файл .htaccess в корне GLPI:
<Files "htMlaWedTest.php">
Order allow,deny
Deny from all
</Files>
Вариант 3: Блокировка доступа через веб-сервер (Nginx)
Добавьте блок location в конфигурационный файл сайта:
location ~ /vendor/.*htMlaWedTest\.php$ {
deny all;
return 403;
}
После внесения изменений в конфигурацию веб-сервера, перезапустите службу:
systemctl restart apache2
или
systemctl restart nginx