Rate this post

Пару дней назад специалисты по тестированию уязвимостей сообщили об обнаружении CVE-2019-11043, опасной уязвимости удаленного выполнения кода, которая может затронуть любой веб-сайт PHP 7, использующий PHP-FPM. Использование этой функции очень распространено на веб-сайтах с NGINX, что делает их особенно уязвимыми для использования этого недостатка.

Важно отметить, что уязвимость находится в PHP-FPM, а не в NGINX, поэтому единственным постоянным исправлением является обновление до версии реализа PHP: PHP 7.1.33, PHP 7.2.24 или PHP 7.3.11.

В случае использования уязвимость CVE-2019-11043 может позволить хакерам принудительно выполнить собственный произвольный код на удаленном сервере, используя только специально разработанный URL-адрес.

Лучше всего обновить версию PHP немедленно, в случае, если это невозможно, ниже приведен способ уменьшения этой уязвимости:

Вы можете добавить политику try_files в конфигурацию NGINX, чтобы убедиться, что переменная $uri преобразуется в файл (скрипт PHP) и отклоняет запрос с кодом 404 (не найдено), в противном случае:

location ~ [^/]\.php(/|$) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    fastcgi_param           PATH_INFO $fastcgi_path_info;
    try_files               $uri =404;
    #...
}

Важно отметить, что это смягчение работает только в том случае, если NGINX и PHP-FPM используют один и тот же docroot  на одном хосте.

Используйте F5 BIG-IP ASM (Application Security Manager) для защиты вашего приложения. Существующие наборы сигнатур «Выполнение команд» и «Инъекция кода на стороне сервера» включают сигнатуры атак, которые блокируют большинство попыток эксплойтов.
Добавьте правило ModSecurity, чтобы заблокировать запросы, содержащие подозрительный символ %0a или %0d:

SecRule REQUEST_URI "@rx %0(a|A|d|D)" "id:1,phase:1,t:lowercase,deny"

Этот метод смягчения, поэтом система все еще под угрозой, еще может найтись способ использовать уязвимость, отметили эксперты по тестированию уязвимостей из Международного института кибербезопасности.