Проблема распространяется только на NGINX-серверы с включенным PHP-FPM.
В ветке PHP 7 выявлена опасная уязвимость (CVE-2019-11043), предоставляющая злоумышленникам возможность выполнять команды на сервере, используя специально сформированный URL.
По данным экспертов, баг уже активно используется в атаках. Процесс его эксплуатации довольно простой, к тому же проблема усугубляется тем, что ранее на этой неделе на портале GitHub был размещен PoC-код для определения уязвимых серверов. Как пояснили специалисты, обнаружив уязвимый сервер, «атакующий может отправить специально сформированные запросы, добавив '?a=' в URL».
Отмечается, что проблема распространяется исключительно на NGINX-серверы с включенным PHP-FPM (программный пакет для обработки скриптов на языке PHP). Уязвимыми являются конфигурации nginx, где проброс в PHP-FPM осуществляется c разделением частей URL при помощи "fastcgi_split_path_info" и определением переменной окружения PATH_INFO, но без предварительной проверки существования файла директивой "try_files $fastcgi_script_name" или конструкцией "if (!-f $document_root$fastcgi_script_name)". Пример уязвимой конфигурации:
«С помощью специально сформированного URL атакующий может добиться смещения указателя path_info на первый байт структуры _fcgi_data_seg. Запись нуля в этот байт приведет к перемещению указателя `char* pos` на ранее идущую область памяти, вызываемый следом FCGI_PUTENV перезаписывает некоторые данные (включая другие переменные ast cgi)», - указывается в описании уязвимости. С помощью данной техники злоумышленник может создать фиктивную переменную PHP_VALUE fcgi и добиться выполнения кода.
Разработчики выпустили патч для данной уязвимости в минувшую пятницу, 25 октября. Всем пользователям настоятельно рекомендуется обновиться до новейших версий PHP 7.3.11 и PHP 7.2.24.
От классики до авангарда — наука во всех жанрах