English Advisory →
CVE-2019-110439.8/CRITICALCISA KEV 등재CWE-120CWE-787

PHP-FPM 원격 코드 실행(RCE) 취약점 (CVE-2019-11043) 보안 권고 및 대응 가이드

⚡ 패치 명령어 바로가기
영향받는 벤더 / 생태계
php, nginx
대상 컴포넌트 / 패키지
php-fpm, php
권고문 발행일
2019-10-28
CVSS v3.1
9.8
CRITICAL
30일 악용확률
99.8%
FIRST.org
CISA KEV
악용 확인됨

실무자 핵심 요약 (Executive Summary)

SECOPS ASSESSMENT
영향 대상

Nginx와 PHP-FPM(FastCGI Process Manager)이 결합된 환경에서 특정 FastCGI 설정(PATH_INFO 관련)을 사용하는 PHP 7.1.x (7.1.33 미만), 7.2.x (7.2.24 미만), 7.3.x (7.3.11 미만) 버전

파급 효과

인증되지 않은 원격의 공격자가 특수하게 조작된 HTTP 요청을 전송하여 PHP-FPM 프로세스의 메모리 버퍼를 오버플로우시키고, 대상 웹 서버에서 임의의 시스템 명령어를 실행(RCE)할 수 있습니다

권장 조치

PHP 버전을 최신 패치 버전(7.1.33, 7.2.24, 7.3.11 이상)으로 즉시 업그레이드하고, Nginx 설정 파일에서 FastCGI 경로 검증 로직(try_files)을 추가하십시오

영향받는 제품 및 버전 범위

Nginx + PHP-FPM 구성을 사용하는 환경 중 아래 PHP 버전을 구동하는 서버: - PHP 7.1.x 계열: 7.1.33 미만 버전 - PHP 7.2.x 계열: 7.2.24 미만 버전 - PHP 7.3.x 계열: 7.3.11 미만 버전 ※ Nginx 설정 파일에 'fastcgi_split_path_info' 지시문이 포함되어 있고, 파일 존재 여부를 검증하는 'try_files $uri =404' 등의 설정이 누락된 경우에만 취약합니다.

권장 패치 및 임시 완화(Workaround) 가이드

패치 및 우회 명령어

1. 공식 보안 패치 및 버전 업그레이드 명령어

가장 확실한 해결책은 취약점이 해결된 공식 PHP 버전으로 업그레이드하는 것입니다.

bash
# Ubuntu / Debian 계열 시스템 패키지 업데이트 및 PHP 업그레이드
sudo apt-get update
sudo apt-get --only-upgrade install php7.3-fpm php7.3-cli php7.3-common -y

# CentOS / RHEL 계열 (Remi 저장소 사용 시)
sudo yum clean all
sudo yum update php-fpm php-cli php-common -y

# PHP-FPM 서비스 재시작을 통한 패치 적용
sudo systemctl restart php-fpm
php-fpm -v

2. 패치 전 임시 완화(Workaround) 및 접근 제어 설정

즉각적인 패치가 불가능한 경우, Nginx 설정 파일(/etc/nginx/nginx.conf 또는 /etc/nginx/conf.d/default.conf)을 수정하여 실제 파일이 존재하지 않는 경로에 대한 FastCGI 요청 전달을 차단해야 합니다.

nginx
# Nginx 가상 호스트 설정 파일 수정
server {
    listen 80;
    server_name localhost;
    root /var/www/html;

    location ~ [^/]\.php(/|$) {
        # 실제 PHP 파일이 존재하는지 먼저 검증 (취약점 완화 핵심 설정)
        try_files $uri =404;

        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

설정 변경 후 Nginx 설정을 검증하고 재시작합니다.

bash
sudo nginx -t
sudo systemctl restart nginx

3. 침해 흔적(IoC) 및 로그·버전 점검 스크립트

Nginx 접근 로그에서 개행 문자(%0a 또는 \ )가 포함된 비정상적인 FastCGI 요청 패턴을 탐지하는 스크립트입니다.

bash
# Nginx 액세스 로그에서 취약점 공격 시도 패턴(개행 문자 및 PHP_VALUE 주입) 검색
grep -Ei 'php_value|%0a' /var/log/nginx/access.log

# 현재 실행 중인 PHP-FPM 버전 및 설정 취약 여부 점검
php -v | grep -E '7\.[1-3]\.'
실무자 패치 대응 자가 점검 체크리스트
0/4 (0%)
권장 아키텍처 방어 통제 (Recommended Security Control)
Cloudflare Enterprise & Pro WAF
실제 공격에 악용되는 고위험 취약점이므로, Nginx 설정에 'try_files $uri =404'를 즉시 추가하고 PHP 버전을 최신 안전 버전으로 업그레이드하십시오.

코드 수정 전에도 가상 패치(Virtual Patching)로 웹 공격을 즉시 차단하세요

서버 재시작이나 긴급 패치가 어려운 운영 환경이라면 클라우드 WAF 관리형 룰셋을 활성화하여 SQLi, RCE, XSS 익스플로잇 페이로드를 엣지에서 1분 만에 차단할 수 있습니다.

평균 설정 시간 3분 · Zero-Day 자동 룰 업데이트
이 웹 취약점(WAF 우회 & RCE)을 안전한 실습 랩에서 직접 재현해 보세요
실습 랩 & 보안 강의 보러가기

취약점 발생 원리 및 공격 메커니즘

1. 취약점 개요 및 발생 원인 (Root Cause)

본 취약점(CVE-2019-11043)은 PHP-FPM(FastCGI Process Manager)의 fpm_main.c 소스 코드 내에서 환경 변수를 처리하는 과정 중 발생하는 버퍼 오버플로우(CWE-120, CWE-787) 취약점입니다. Nginx 설정 중 fastcgi_split_path_info 지시문을 사용하여 URL 경로를 스크립트 이름과 추가 경로 정보(PATH_INFO)로 분할할 때, 개행 문자(%0a)가 포함된 요청이 들어오면 분할 포인터 연산에 오류가 발생합니다. 이로 인해 path_info 변수의 길이가 음수로 계산되거나 잘못된 메모리 주소를 가리키게 되며, 이후 FastCGI 프로토콜 데이터 저장을 위해 할당된 버퍼의 경계를 넘어선 영역에 데이터를 덮어쓰는(Out-of-bounds Write) 현상이 발생합니다.

2. 공격 메커니즘 및 익스플로잇 시나리오

공격자는 Nginx가 PHP-FPM으로 요청을 전달하기 전에 URL 경로를 검증하지 않는 취약한 설정을 악용합니다.

  • 공격자는 대상 웹 서버에 http://target.com/index.php/PHP_VALUE%0aname=value와 같이 개행 문자(%0a)와 FastCGI 환경 변수 제어 구문이 포함된 정밀하게 조작된 HTTP 요청을 전송합니다.
  • Nginx는 이 요청을 수신하여 fastcgi_split_path_info 규칙에 따라 분할한 뒤 PHP-FPM으로 전달합니다.
  • PHP-FPM 내부의 init_request_info() 함수는 잘못 계산된 포인터 주소로 인해 FCGI_ENV 구조체 내부의 메모리 영역을 오버런(Overrun)합니다.
  • 공격자는 이를 통해 PHP 구성 지시문인 LD_PRELOAD 또는 auto_prepend_file과 같은 설정을 메모리 상에서 동적으로 조작하여, 최종적으로 웹 서버 권한으로 임의의 PHP 코드 및 시스템 명령어를 실행(RCE)하게 됩니다.

3. 비즈니스 및 인프라 파급 영향

본 취약점은 CVSS 9.8의 치명적(Critical) 등급이며, CISA KEV(Known Exploited Vulnerabilities) 목록에 등재되어 실제 야생(In-the-Wild)에서 활발히 악용된 이력이 확인된 고위험 취약점입니다. 공격 성공 시 외부의 비인증 공격자가 웹 애플리케이션 서버(WAS)의 제어권을 완전히 탈취할 수 있습니다. 이는 데이터베이스 자격 증명 탈취, 내부 기밀 데이터 유출, 랜섬웨어 유포, 내부 네트워크 침투를 위한 발판(Pivot)으로 악용될 수 있어 비즈니스 연속성에 치명적인 손실을 초래합니다.

공식 보안 권고문 및 참조 링크

자주 묻는 실무 질문 (FAQ — CVE-2019-11043)

FAQ

Q1. CVE-2019-11043 취약점의 위험도와 실제 악용 가능성은 어느 정도입니까?

CVE-2019-11043의 기본 점수는 CVSS 9.8 (CRITICAL)이며, 향후 30일 내 실제 악용 확률을 나타내는 EPSS 점수는 99.8%입니다. 현재 미국 CISA KEV(실제 악용이 확인된 취약점 카탈로그)에 등재되어 있으므로 최우선 긴급 패치가 필요합니다.

Q2. CVE-2019-11043에 영향을 받는 벤더와 제품은 무엇입니까?

주요 영향 벤더는 php, nginx이며, 대상 컴포넌트는 php-fpm, php입니다. 상세 영향 범위: Nginx + PHP-FPM 구성을 사용하는 환경 중 아래 PHP 버전을 구동하는 서버: - PHP 7.1.x 계열: 7.1.33 미만 버전 - PHP 7.2.x 계열: 7.2.24 미만 버전 - PHP 7.3.x 계열: 7.3.11 미만 버전 ※ Nginx 설정 파일에 'fastcgi_split_path_info' 지시문이 포함되어 있고, 파일 존재 여부를 검증하는 'try_files $uri =404' 등의 설정이 누락된 경우에만 취약합니다.

Q3. 서버 재기동이나 정규 패치 전 즉시 적용할 수 있는 완화 조치(Workaround)는 무엇입니까?

[권장 조치] PHP 버전을 최신 패치 버전(7.1.33, 7.2.24, 7.3.11 이상)으로 즉시 업그레이드하고, Nginx 설정 파일에서 FastCGI 경로 검증 로직(try_files)을 추가하십시오 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.

실무자 보고서 워크벤치 연동

CVE-2019-11043 사내 보안 패치 공지문 · CISO 경영진 보고서 초안 자동 생성

클릭 한 번으로 사내 이메일·노션·결재 문서에 바로 붙여넣을 수 있는 공식 보고서 양식을 생성합니다.

보고서 초안 생성하기 →

🔗 함께 점검해야 할 동일 벤더·스택 연관 취약점 (php)

동일 카테고리 전체 보기 →
SecOps Advisory Dispatch & RSS Feed

일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독

보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.

Slack / Teams / RSS 리더 연동:
패치 명령EN
CVE-2019-11043 PHP-FPM 원격 코드 실행(RCE) 취약점 (CVE-2019-11043) 보안 권고 및 대응 가이드 (CVSS 9.8) - 패치 및 보안 권고 | CVE Pulse