아치 리눅스, CentOS, 데비안, 페도라, 마법사, OpenMandriva, openSUSE, PCLinuxOS, ROSA, 우분투에 대한 php-fpm 리눅스 패키지를 다운로드합니다. php-fpm 최신 버전: 14, 7.4.2, 7.4.1, 7.3.15, 7.3.14, 7.3.13, 7.3.12, 7.3.11, 7.3.10, 7.3.9, 7.3.8, 7.3.6, 7.3.5, 7.3 php-fpm 아키텍처: , 모든, amd64, i386, i686, x86_64 nginx가 php 페이지를 fpm에 전달하지 않는 것처럼 보이지만 나는 바보 같은 짓을하지 않는 것처럼 보입니다. 내 nginx 사용자는 www-data, 또한 내 php7.2-fpm.sock 파일의 소유자입니다. 코드의 나중에 path_info[0]의 값이 0(https://github.com/php/php-src/blob/master/sapi/fpm/fpm/fpm_main.c#L1150)으로 설정됩니다. 그런 다음 FCGI_PUTENV 호출됩니다. 공격자는 URL 경로 및 쿼리 문자열에서 신중하게 선택한 길이를 사용하여 _fcgi_data_seg 구조의 첫 번째 바이트를 정확하게 path_info 점을 만들 수 있습니다. 0을 넣으면 char* pos 필드가 뒤로 이동하고 다음 FCGI_PUTENV 스크립트 경로와 함께 일부 데이터(다른 빠른 cgi 변수 포함)를 덮어씁니다. 이 기술을 사용하여 연구원은 가짜 PHP_VALUE fcgi 변수를 만든 다음 신중하게 선택한 구성 값 체인을 사용하여 코드 실행을 얻을 수 있었습니다. fastcgi_finish_request() – 시간이 많이 걸리는 일을 계속하면서 요청을 완료하고 모든 데이터를 플러시하는 특수 기능 (비디오 변환, 통계 처리 등); 어떤 이벤트가 php-access.log에 기록되지 않고 때마다 나는 여전히 다운로드 루트 디렉토리에서 PHP 페이지에 액세스하려고합니다. Nginx는 위치 블록 내에서 404 개의 메시지를 성공적으로 테스트했기 때문에 php를 위치 블록으로 올바르게 라우팅합니다. php7.2-fpm.sock 파일은 /var/run/php/php7.2-fpm.sock 내에 있으며 php7.2-fpm 서비스가 활성화되어 있습니다.

또한 파일 sapi/fpm/fpm/fpm_main.c(https://github.com/php/php-src/blob/master/sapi/fpm/fpm/fpm_main.c#L1140)의 1140줄에는 env_path_info php 스크립트 경로와 동일한 접두사가 있다고 가정하는 포인터 산술이 포함되어 있다는 점도 지적되었습니다. 그러나 코드는 이 가정이 충족되는지 확인하지 않습니다. 이 검사가 없으면 “path_info” 변수에서 잘못된 포인터가 발생할 수 있습니다. 이러한 조건은 표준 Nginx 구성에서 달성될 수 있다. 이와 같은 Nginx 구성 설정이있는 경우 : CVE-2019-11043PHP-FPM의 fpm_main.c에서 env_path_info 언더 플로우 결함입니다. 이 취약점은 2019년 9월 26일에 보안 연구원 에밀 러너(Emil Lerner)가 PHP 버그 트래커에 처음 보고했습니다.10월 24일, PHP 7.3.11(현재 안정) 및 PHP 7.2.24(이전 안정)가 다른 예정된 버그 수정과 함께 이 취약점을 해결하기 위해 릴리스되었습니다.