Wins blog

글로벌 정보보안 파트너! Global Security  No.1 윈스는 국가대표 정보보안 기업에서 글로벌 강소기업으로 도약합니다.

취약점 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2019-11043] PHP php-fpm RCE 취약점
작성일 2019-11-01 조회 1476

 

PHP-FPM(FastCGI Process Manager)RCE(Remote Code Execution) 취약점이 존재합니다.

* PHP-FPM(FastCGI Process Manager)은 동적 페이지를 빠르게 처리하기 위해 NginX, Apache와 연동하여 사용하는 CGI 입니다.

 

최근 진행되었던 "Real World CTF 2019 Quals" 에서 발견된 PHP-FPM RCE 취약점은 잘못된 NginX configuration으로 PHP-FPM을 연동할 경우 발생합니다.

 

공격 성공 시, 공격자는 임의의 명령, 코드를 실행할 수 있습니다.

 


취약점 설명

 

NVD - CVE-2019-11043

CVSS v2.0 Severity and Metrics:

Base Score: 7.5 HIGH

 

 


 

[그림1. NVD 내역]

 


취약점 분석

 

취약한 버전과 패치 버전을 비교하여 취약점 수정 내역에 대한 확인이 가능합니다.

 

패치 버전에서는 path_info 변수에 전달되는 값을 검증하는 로직이 추가되었습니다.

 

 

[그림2. 패치 내역]

 

 

 

공격 분석

 

취약점은 2019년 10월 28일에 공개되었습니다.

 

NginX 에서 PHP-FPM 모듈을 사용하면 동적 페이지를 빠르게 처리할 수 있는 장점 때문에 NginX + PHP-FPM을 연동하여 사용합니다.

 

CVE-2019-11043 취약점은 다음과 같이 잘못된 NginX configuration으로 PHP-FPM을 사용할 경우 발생합니다.

 

 

[그림3. 취약한 NginX 구성]

 

 

위와 같은 구성을 가진 NginX에서 fastcgi_split_path_info 지시어는 %0a(줄 바꿈 문자)를 적절하게 처리할 수 없습니다.

 

따라서 다음과 같은 URL Query를 전달하면 %0a(줄 바꿈 문자)에 의해서 path_info의 주소를 제어할 수 있습니다.

 

 

 

[그림4. 공격 패킷]

 

 

해당 취약점은 다양한 방법으로 공격을 진행할 수 있습니다.

 

현재 공개된 PoC는 [그림5]과 같은 일련의 과정을 통해서 전역변수를 구성하고 /tmp/a 에 파일을 생성합니다.

 

 

[그림5. 공격 패킷]

 

 

이후 [사진6]과 같이 매개변수에 임의의 명령어를 전달하여 취약점을 악용할 수 있습니다.

 

 

[그림6. 공격 패킷]

 

취약점 대응 방안

 

1. 최신 버전 사용

 

해당 벤더사에서 발표한 보안 권고문을 참고하여 패치를 적용합니다.

 

https://www.php.net/archive/2019.php#2019-10-24-1

 

 

2. WINS Sniper 대응 방안

 

*Sniper IPS

PHP php-fpm path_info RCE
PHP php-fpm path_info RCE.A
PHP php-fpm path_info RCE.B
PHP php-fpm path_info RCE.C

 

첨부파일 첨부파일이 없습니다.
태그