php-fpm இல் உள்ள பாதிப்பு, இது சர்வரில் ரிமோட் குறியீடு செயல்படுத்தலை அனுமதிக்கிறது

கிடைக்கிறது корректирующие релизы PHP 7.3.11, 7.1.33 и 7.2.24, в которых நீக்கப்பட்டது கிரிட்டிசெஸ்கயா பாதிப்பு (CVE-2019-11043) в расширении PHP-FPM (менеджер процессов FastCGI), позволяющая удалённо выполнить свой код в системе. Для атаки на серверы, использующие для запуска PHP-скриптов PHP-FPM в связке с Nginx, уже публично доступен வேலை பயன்படுத்தி.

Атака возможна в конфигурациях nginx, в которых проброс в PHP-FPM осуществляется c разделением частей URL при помощи «fastcgi_split_path_info» и определением переменной окружения PATH_INFO, но без предварительной проверки существования файла директивой «try_files $fastcgi_script_name» или конструкцией «if (!-f $document_root$fastcgi_script_name)». Проблема в том числе வெளிப்படுத்தப்படுகிறது в настройках, предлагаемых для платформы NextCloud. Например, уязвимы конфигурации с конструкциями вида:

இடம் ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}

Проследить за устранением проблемы в дистрибутивах можно на данных страницах: டெபியன், RHEL, உபுண்டு, SUSE/openSUSE, ஃப்ரீ, ஆர்க், ஃபெடோரா. В качестве обходного метода защиты после строки «fastcgi_split_path_info» можно добавить проверку существования запрошенного PHP-файла:

try_files $fastcgi_script_name =404;

Проблема вызвана ошибкой при манипуляции с указателями в файле sapi/fpm/fpm/fpm_main.c. При присвоении указателя предполагается, что значение переменной окружения PATH_INFO обязательно содержит префикс, совпадающий с путём к PHP-скрипту.
Если в директиве fastcgi_split_path_info указано разделение пути к скрипту с использованием регулярного выражения, чувствительного к передаче символа перевода строки (например, во многих примерах предлагается использовать «^(.+?\.php)(/.*)$»), то атакующий может добиться записи в переменную окружения PATH_INFO пустого значения. В этом случае далее по ходу выполнения மேற்கொள்ளப்பட்டது запись в path_info[0] нуля и вызов FCGI_PUTENV.

Запросив определённым образом оформленный URL атакующий может добиться смещения указателя path_info на первый байт структуры «_fcgi_data_seg», а запись нуля в этот байт приведёт к перемещению указателя «char* pos» на ранее идущую область памяти. Вызываемый следом FCGI_PUTENV перезапишет данные в этой памяти значением, которое может контролировать атакующий. В указанной памяти в том числе хранятся значения других переменных FastCGI и записав свои данные атакующий может создать фиктивную переменную PHP_VALUE и добиться выполнения своего кода.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்