Closed ibin79 closed 4 years ago
2019/10/26 04:55:35 [error] 12673#12673: *274767664 limiting requests, excess: 10.191 by zone "req_php", client: *.*.*.*, server: *****, request: "GET /index.php/PHP%0Ais_the_shittiest_lang.php?QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
수고 많으십니다... 본문 내용을 보면 현재 7.1.32 버전은 업데이트를 해야겠군요.
네. PHP 7.1 이상은 업데이트를 권장하고요.
단, nginx 에서 fastcgi 설정 부분에 try_files $uri =404;
설정이 있다면,
해당 취약점은 문제없는것으로 1차 확인되었습니다.
http://rpms.remirepo.net/enterprise/7/php70/x86_64/repoview/php-fpm.html
Changelog by Remi Collet (2019-10-22):
https://centos.pkgs.org/7/remi-x86_64/php70-php-cli-7.0.33-14.el7.remi.x86_64.rpm.html
# yum update php70*
=====================================================================
WARNING : PHP 7.0 have reached its "End of Life" in
December 2018. Even, if this package includes some of
the important security fix, backported from 7.1, the
UPGRADE to a maintained version is very strongly RECOMMENDED.
=====================================================================
Verifying : php70-php-devel-7.0.33-14.el7.remi.x86_64
# cd /root/stack/
# ./apache-to-nobody.sh
php79 stack version 1.1.0
### PHP FPM 로그/세션 디렉토리의 소유자/그룹을 apache 에서 nobody 로 변경합니다. ###
- yum update 를 통해 php-fpm 이 업데이트된 후, 이 스크립트를 실행해주시면 됩니다.
참고) https://github.com/php79/stack/issues/12
변경할 디렉토리/파일:
/var/opt/remi/php70/lib/php/opcache
/var/opt/remi/php70/lib/php/session
/var/opt/remi/php70/lib/php/wsdlcache
/var/opt/remi/php70/log/php-fpm
위 디렉토리/파일의 소유자/그룹을 nobody 로 변경하시겠습니까? [n/Y] y
취약점 정보
https://www.tenable.com/blog/cve-2019-11043-vulnerability-in-php-fpm-could-lead-to-remote-code-execution-on-nginx
취약점 발생 조건
nginx + php-fpm 기반의 PHP7 이상 모든 버전 해당. (2019-10-24 업그레이드된 7.1.33 / 7.2.24 / 7.3.11 은 패치됨)
단, 특정 nginx fastcgi 설정에서만 문제 발생.
취약점 테스트 툴
https://github.com/neex/phuip-fpizdam
취약점 테스트 툴 검증
테스트 툴의 예제대로 nginx 설정을 변경하여 취약점이 발생하는 것 확인.
서버 CPU 자원이 증가하며, 공격받은 해당 PHP FPM 프로세스는 웹페이지를 열때도 다음 경고가 발생함. (재시작 전까지...)
1차 분석 결과
취약점 발생한 nginx 설정을 하나씩 수정하며 취약점이 발생하지 않는 조건을 찾음.
다음 2가지 조건을 모두 만족해야 취약점이 발생.
try_files $uri =404;
없어야 함. -> stack 은 모든 설정에서 이미 선언었으므로 취약하지 않음.fastcgi_param PATH_INFO $fastcgi_path_info;
있어야 함. -> stack 은 모든 설정에서 없으므로 취약하지 않음.1차 결론
php79/stack 으로 기본 구성된 nginx + php-fpm 조합에서는 취약점이 적용되지 않습니다. 단, 위 설정을 임의로 수정/추가한 경우는 취약할 수 있습니다.
관련 링크