ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ืŸ php-fpm ืึทื– ืึทืœืึทื•ื– ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ื•ื•ื™ื™ึทื˜ ืงืึธื“ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ

ื‘ื ื™ืžืฆื ืงืขืจืขืงื˜ื™ื•ื• ืจื™ืœื™ืกื™ื– ืคื•ืŸ PHP 7.3.11, 7.1.33 ืื•ืŸ 7.2.24, ืื™ืŸ ื•ื•ืึธืก ื™ืœื™ืžืึทื ื™ื™ื˜ืึทื“ ืงืจื™ื˜ื™ืฉ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ (CVE-2019-11043) ืื™ืŸ ื“ื™ PHP-FPM (FastCGI Process Manager) ืคืึทืจืœืขื ื’ืขืจื•ื ื’, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืจื™ืžืึธื•ื˜ืœื™ ื•ื™ืกืคื™ืจืŸ ื“ื™ื™ืŸ ืงืึธื“ ืื•ื™ืฃ ื“ื™ ืกื™ืกื˜ืขื. ืฆื• ื‘ืึทืคืึทืœืŸ ืกืขืจื•ื•ืขืจืก ื•ื•ืึธืก ื ื•ืฆืŸ PHP-FPM ืื™ืŸ ืงืึทื ื“ื–ืฉืึทื ื’ืงืฉืึทืŸ ืžื™ื˜ Nginx ืฆื• ืœื•ื™ืคืŸ PHP ืกืงืจื™ืคึผืก, ืขืก ืื™ื– ืฉื•ื™ืŸ ืขืคื ื˜ืœืขืš ื‘ื ื™ืžืฆื workman ืขืงืกืคึผืœื•ื™ื˜ื™ืจืŸ.

ื“ื™ ื‘ืึทืคืึทืœืŸ ืื™ื– ืžืขื’ืœืขืš ืื™ืŸ nginx ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ืื™ืŸ ื•ื•ืึธืก ืคืึธืจื•ื•ืขืจื“ื™ื ื’ ืฆื• PHP-FPM ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ื“ื•ืจืš ืกืขืคึผืขืจื™ื™ื˜ื™ื ื’ ืคึผืึทืจืฅ ืคื•ืŸ ื“ื™ URL ื ื™ืฆืŸ "fastcgi_split_path_info" ืื•ืŸ ื“ื™ืคื™ื™ื ื™ื ื’ ื“ื™ PATH_INFO ืกื•ื•ื™ื•ื•ืข ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง, ืึธื‘ืขืจ ืึธืŸ ืขืจืฉื˜ืขืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืขืงื–ื™ืกื˜ืขื ืฅ ืคื•ืŸ ื“ืขืจ ื˜ืขืงืข ื ื™ืฆืŸ ื“ื™ "try_files $fastcgi_script_name" ื“ื™ืจืขืงื˜ื™ื•ื• ืึธื“ืขืจ ื“ื™ "ืื•ื™ื‘ (!-ืค $) ื“ืึธืงื•ืžืขื ื˜_ืจืึธืึธื˜$ืคืึทืกื˜ืงื’ื™_ืกืงืจื™ืคึผื˜_ื ืึทืžืข)". ื“ื™ ืคึผืจืึธื‘ืœืขื ืื™ื– ืื•ื™ืš ืื•ื™ืก ืื™ืŸ ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก ื’ืขืคึฟื™ื ื˜ ืคึฟืึทืจ ื“ื™ NextCloud ืคึผืœืึทื˜ืคืึธืจืžืข. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ืžื™ื˜ ืกื˜ืจืึทืงื˜ืฉืขืจื– ื•ื•ื™:

ืึธืจื˜ ~ [^/]\.ืคืคึผ (/|$) {
ืคืึทืกื˜ืงื’ื™_ืกืคึผืœื™ื˜_ืคึผืึทื˜ื”_ืื™ื ืคึฟืึธ ^(.+?\.ืคืคึผ)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}

ืื™ืจ ืงืขื ืขืŸ ืฉืคึผื•ืจ ื“ื™ ื”ืึทื›ืœืึธื˜ืข ืคื•ืŸ โ€‹โ€‹ื“ืขื ืคึผืจืึธื‘ืœืขื ืื™ืŸ ื“ื™ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืงื™ืฅ ืื•ื™ืฃ ื“ื™ ื‘ืœืขื˜ืขืจ: ื“ืขื‘ื™ืึทืŸ, rhel, ื•ื‘ื•ื ื˜ื•, SUSE/openSUSE, FreeBSD, ืึทืจื˜ืฉ, ืคืขื“ืึธืจืึท. ื•ื•ื™ ืึท ื•ื•ืึธืจืงืึทืจืึธื•ื ื“, ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ื’ืŸ ืึท ื˜ืฉืขืง ืคึฟืึทืจ ื“ื™ ืขืงื–ื™ืกื˜ืขื ืฅ ืคื•ืŸ ื“ื™ ื’ืขื‘ืขื˜ืŸ PHP ื˜ืขืงืข ื ืึธืš ื“ื™ "fastcgi_split_path_info" ืฉื•ืจื”:

try_files $fastcgi_script_name =404;

ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืื™ื– ื’ืขืคึฟื™ืจื˜ ื“ื•ืจืš ืึท ื˜ืขื•ืช ื•ื•ืขืŸ ืžืึทื ื™ืคึผื™ืึทืœื™ื™ื˜ื™ื ื’ ืคึผื•ื™ื ื˜ืขืจื– ืื™ืŸ ืึท ื˜ืขืงืข sapi/fpm/fpm/fpm_main.c. ื•ื•ืขืŸ ืกื™ื™ื ื™ื ื’ ืึท ื˜ื™ื™ึทื˜ืœ, ืขืก ืื™ื– ืื ื’ืขื ื•ืžืขืŸ ืึทื– ื“ื™ ื•ื•ืขืจื˜ ืคื•ืŸ ื“ื™ PATH_INFO ื™ื ื•ื•ื™ื™ืจืึทื ืžืขื ืึทืœ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืžื•ื–ืŸ ืึทื ื˜ื”ืึทืœื˜ืŸ ืึท ืคึผืจืขืคื™ืงืก ื•ื•ืึธืก ื’ืœื™ื™ึทื›ืŸ ื“ืขื ื“ืจืš ืฆื• ื“ื™ PHP ืฉืจื™ืคื˜.
ืื•ื™ื‘ ื“ื™ fastcgi_split_path_info ื“ื™ืจืขืงื˜ื™ื•ื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจื˜ ืกืคึผืœื™ื˜ื™ื ื’ ื“ื™ ืฉืจื™ืคื˜ ื“ืจืš ื ื™ืฆืŸ ืึท ื ืขื•ื•ืœื™ื ืข-ืฉืคึผื™ืจืขื•ื•ื“ื™ืง ืจืขื’ื•ืœืขืจ ืื•ื™ืกื“ืจื•ืง (ืœืžืฉืœ, ืคื™ืœืข ื‘ื™ื™ืฉืคื™ืœืŸ ืคึฟืึธืจืฉืœืึธื’ืŸ ื ื™ืฆืŸ "^(.+?\.ืคืคึผ)(/.*)$"), ืึท ืึทื˜ืึทืงืขืจ ืงืขืŸ ืขื ืฉื•ืจ ืึทื– ืึท ืœื™ื™ื“ื™ืง ื•ื•ืขืจื˜ ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืฆื• ื“ื™ PATH_INFO ืกื•ื•ื™ื•ื•ืข ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง. ืื™ืŸ ื“ืขื ืคืึทืœ, ื ืึธืš ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ื“ื•ืจื›ื’ืขืคื™ืจื˜ ืฉืจื™ื™ื‘ืŸ path_info[0] ืฆื• ื ื•ืœ ืื•ืŸ ืจื•ืคืŸ FCGI_PUTENV.

ื“ื•ืจืš ื‘ืขื˜ืŸ ืึท URL ืคืึธืจืžืึทื˜ื˜ืขื“ ืื•ื™ืฃ ืึท ื–ื™ื›ืขืจ ื•ื•ืขื’, ืึท ืึทื˜ืึทืงืขืจ ืงืขื ืขืŸ ื“ืขืจื’ืจื™ื™ื›ืŸ ืึท ื™ื‘ืขืจืจื•ืง ืคื•ืŸ ื“ื™ path_info ื˜ื™ื™ึทื˜ืœ ืฆื• ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ื™ื™ื˜ ืคื•ืŸ ื“ื™ "_fcgi_data_seg" ืกื˜ืจื•ืงื˜ื•ืจ, ืื•ืŸ ืฉืจื™ื™ื‘ืŸ ืึท ื ื•ืœ ืฆื• ื“ืขื ื‘ื™ื˜ืข ื•ื•ืขื˜ ืคื™ืจืŸ ืฆื• ื“ื™ ื‘ืึทื•ื•ืขื’ื•ื ื’ ืคื•ืŸ ื“ื™ "char * pos" ื˜ื™ื™ึทื˜ืœ ืฆื• ืึท ืคืจื™ืขืจ ืœื™ื’ืŸ ื–ื™ืงืึธืจืŸ ื’ืขื’ื ื˜. ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ื’ืขืจื•ืคึฟืŸ FCGI_PUTENV ื•ื•ืขื˜ ืึธื•ื•ื•ืขืจืจื™ื™ื˜ ื“ื™ ื“ืึทื˜ืŸ ืื™ืŸ ื“ืขื ื–ื›ึผืจื•ืŸ ืžื™ื˜ ืึท ื•ื•ืขืจื˜ ื•ื•ืึธืก ื“ื™ ืึทื˜ืึทืงืขืจ ืงืขื ืขืŸ ืงืึธื ื˜ืจืึธืœื™ืจืŸ. ื“ื™ ืกืคึผืขืกื™ืคื™ืขื“ ื–ื›ึผืจื•ืŸ ืื•ื™ืš ืกื˜ืึธืจื– ื“ื™ ื•ื•ืึทืœื•ืขืก ืคื•ืŸ ืื ื“ืขืจืข FastCGI ื•ื•ืขืจื™ืึทื‘ืึทืœื–, ืื•ืŸ ื“ื•ืจืš ืฉืจื™ื™ื‘ืŸ ื–ื™ื™ืขืจ ื“ืึทื˜ืŸ, ืึท ืึทื˜ืึทืงืขืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืึท ืคื™ืงื˜ื™ืฉ ืคืคึผ_VALUE ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืื•ืŸ ื“ืขืจื’ืจื™ื™ื›ืŸ ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคื•ืŸ ื–ื™ื™ืขืจ ืงืึธื“.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’