เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆ PHP-fpm เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ

เบกเบต เบเบฒเบ™เปเบเป‰เป„เบ‚เบเบฒเบ™เปเบเป‰เป„เบ‚ PHP 7.3.11, 7.1.33 เปเบฅเบฐ 7.2.24, เปƒเบ™เบ™เบฑเป‰เบ™ เบฅเบปเบšเบฅเป‰เบฒเบ‡ เบชเปเบฒเบ„เบฑเบ™ เบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญ (CVE-2019-11043) เปƒเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ PHP-FPM (FastCGI Process Manager), เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เบฅเบฐเบšเบปเบšเบˆเบฒเบเป„เบฅเบเบฐเป„เบ. เป€เบžเบทเปˆเบญเป‚เบˆเบกเบ•เบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเปƒเบŠเป‰ PHP-FPM เบชเบปเบกเบ—เบปเบšเบเบฑเบš Nginx เป€เบžเบทเปˆเบญเปเบฅเปˆเบ™เบชเบฐเบ„เบดเบš PHP, เบกเบฑเบ™เบกเบตเปƒเบซเป‰เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเปเบฅเป‰เบง. เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™ เบ‚เบนเบ”เบฎเบตเบ”.

เบเบฒเบ™เป‚เบˆเบกเบ•เบตเปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ nginx เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เบซเบฒ PHP-FPM เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบเบฒเบ™เปเบเบเบชเปˆเบงเบ™เบ‚เบญเบ‡ URL เป‚เบ”เบเปƒเบŠเป‰ "fastcgi_split_path_info" เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก PATH_INFO, เปเบ•เปˆเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบกเบตเบขเบนเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เป‚เบ”เบเปƒเบŠเป‰ "try_files $fastcgi_script_name" เบ„เปเบฒเบชเบฑเปˆเบ‡เบซเบผเบท "เบ–เป‰เบฒ (!-f $) document_root$fastcgi_script_name)". เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบ„เบทเบเบฑเบ™ เบ›เบฒเบเบปเบ” เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบต NextCloud. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบŠเบฑเปˆเบ™:

เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/. **) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเปƒเบ™เบŠเบธเบ”เบเบฒเบ™เปเบˆเบเบขเบฒเบเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰: Debian, RHEL, Ubuntu, SUSE/openSUSE, FreeBSD, เบ—เป‰เบญเบ‡เบŸเป‰เบฒ, Fedora. เป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบกเบตเบขเบนเปˆเบ‚เบญเบ‡เป„เบŸเบฅเปŒ PHP เบ—เบตเปˆเบฎเป‰เบญเบ‡เบ‚เปเบซเบผเบฑเบ‡เบˆเบฒเบเปเบ–เบง "fastcgi_split_path_info":

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 เป„เบ›เบซเบฒ byte เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ "_fcgi_data_seg", เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™เบชเบนเบ™เป„เบ›เบซเบฒ byte เบ™เบตเป‰เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡ "char* pos" เบŠเบตเป‰เป„เบ›เบซเบฒเบžเบทเป‰เบ™เบ—เบตเปˆเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบ•เบฑเป‰เบ‡เป„เบงเป‰เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰. เบ•เปเปˆเป„เบ›เป€เบญเบตเป‰เบ™เบงเปˆเบฒ FCGI_PUTENV เบˆเบฐเบ‚เบฝเบ™เบ—เบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบ™เบตเป‰เบ”เป‰เบงเบเบ„เปˆเบฒเบ—เบตเปˆเบœเบนเป‰เป‚เบˆเบกเบ•เบตเบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเป„เบ”เป‰. เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบเบฑเบ‡เป€เบเบฑเบšเบ„เปˆเบฒเบ‚เบญเบ‡เบ•เบปเบงเปเบ› FastCGI เบญเบทเปˆเบ™เป†, เปเบฅเบฐเป‚เบ”เบเบเบฒเบ™เบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบ•เบปเบงเปเบ› PHP_VALUE เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบšเบฑเบ™เบฅเบธเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™