php-fpm เจตเจฟเฉฑเจš เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ เจœเฉ‹ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจฐเจฟเจฎเฉ‹เจŸ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ

เจ‰เจชเจฒเฉฑเจฌเจง PHP 7.3.11, 7.1.33 เจ…เจคเฉ‡ 7.2.24 เจฆเฉ‡ เจธเฉเจงเจพเจฐเจพเจคเจฎเจ• เจฐเฉ€เจฒเฉ€เจœเจผ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ–เจคเจฎ เจ•เฉ€เจคเจพ เจจเจพเจœเจผเฉเจ• เจ•เจฎเจœเจผเฉ‹เจฐเฉ€ (CVE-2019-11043) PHP-FPM (FastCGI เจชเฉเจฐเฉ‹เจธเฉˆเจธ เจฎเฉˆเจจเฉ‡เจœเจฐ) เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ เจตเจฟเฉฑเจš, เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจธเจŸเจฎ เจ‰เฉฑเจคเฉ‡ เจฐเจฟเจฎเฉ‹เจŸเจฒเฉ€ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค PHP เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ Nginx เจฆเฉ‡ เจจเจพเจฒ PHP-FPM เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจธเจฐเจตเจฐเจพเจ‚ 'เจคเฉ‡ เจนเจฎเจฒเจพ เจ•เจฐเจจ เจฒเจˆ, เจ‡เจน เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจœเจจเจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจนเฉˆ เจ•เจพเจฐเฉ€เจ—เจฐ เจธเจผเฉ‹เจธเจผเจฃ.

เจ‡เจน เจนเจฎเจฒเจพ nginx เจธเฉฐเจฐเจšเจจเจพเจตเจพเจ‚ เจตเจฟเฉฑเจš เจธเฉฐเจญเจต เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš PHP-FPM เจจเฉ‚เฉฐ เจซเจพเจฐเจตเจฐเจกเจฟเฉฐเจ— "fastcgi_split_path_info" เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ URL เจฆเฉ‡ เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉฑเจ– เจ•เจฐเจ•เฉ‡ เจ…เจคเฉ‡ PATH_INFO เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจ•เฉ‡ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจชเจฐ เจชเจนเจฟเจฒเจพเจ‚ "try_files $fastcgi_script_name" เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจซเจพเจˆเจฒ เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚เฅค เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฟเจต เจœเจพเจ‚ "if (!-f $) document_root$fastcgi_script_name)"เฅค เจธเจฎเฉฑเจธเจฟเจ† เจตเฉ€ เจนเฉˆ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจจเฉˆเจ•เจธเจŸ เจ•เจฒเจพเจ‰เจก เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจตเจฟเฉฑเจš. เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจธเฉฐเจฐเจšเจจเจพเจตเจพเจ‚ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ:

เจŸเจฟเจ•เจพเจฃเจพ ~ [^/]\.php(/|$) {
เจซเจพเจธเจŸเจ•เจ—เฉ€_เจธเจชเจฒเจฟเจŸ_เจชเจพเจฅ_เจ‡เจจเจซเฉ‹ ^ (. +? \. เจชเฉ€เจเจšเจชเฉ€) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}

เจคเฉเจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจชเฉฐเจจเจฟเจ†เจ‚ 'เจคเฉ‡ เจตเฉฐเจก เจ•เจฟเฉฑเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ† เจฆเฉ‡ เจนเฉฑเจฒ เจจเฉ‚เฉฐ เจŸเจฐเฉˆเจ• เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹: เจกเฉ‡เจฌเฉ€เจ…เจจ, RHEL, เจ‰เจฌเจคเฉ‚เฉฐ, เจธเฉ‚เจธเฉ‡/เจ“เจชเจจเจธเฉ‚เจธเฉ‡, เจซเฉเจฐเฉ€เจธเจฌเฉˆเจก, เจ•เจคเจฐ, เจซเฉ‡เจกเฉ‹เจฐเจพ. เจ‡เฉฑเจ• เจนเฉฑเจฒ เจตเจœเฉ‹เจ‚, เจคเฉเจธเฉ€เจ‚ "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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹