English Advisory →
CVE-2012-18239.8/CRITICALCISA KEV 등재CWE-77CWE-77

PHP-CGI 원격 코드 실행(RCE) 취약점 분석 및 대응 가이드 (CVE-2012-1823)

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

실무자 핵심 요약 (Executive Summary)

SECOPS ASSESSMENT
영향 대상

PHP 5.3.12 미만 및 5.4.2 미만 버전 중 php-cgi(CGI 모드)로 동작하는 웹 서버 환경

파급 효과

인증되지 않은 원격 공격자가 HTTP 쿼리 스트링을 통해 PHP 명령줄 옵션을 주입하여 대상 서버에서 임의의 코드를 실행할 수 있음

권장 조치

최신 안전한 PHP 버전으로 업그레이드하거나, 웹 서버 설정을 통해 php-cgi에 대한 직접적인 쿼리 스트링 전달을 차단해야 함

영향받는 제품 및 버전 범위

PHP 5.3.12 미만 버전 및 PHP 5.4.0 ~ 5.4.1 버전 (CGI 모드로 구성된 경우에 한함)

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

패치 및 우회 명령어

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

가장 확실한 해결책은 취약점이 해결된 PHP 5.3.12 또는 5.4.2 이상 버전으로 업그레이드하는 것입니다. 최신 패키지 매니저를 사용하여 업데이트를 수행합니다.

bash
# Debian/Ubuntu 계열 시스템 업데이트
sudo apt-get update
sudo apt-get install --only-upgrade php5-cgi

# CentOS/RHEL 계열 시스템 업데이트
sudo yum update php-cli php-common

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

즉각적인 업그레이드가 어려운 경우, Apache 또는 Nginx 웹 서버 설정을 수정하여 등호(=)가 없고 하이픈(-)으로 시작하는 쿼리 스트링 요청을 사전에 차단해야 합니다.

nginx
# Nginx 설정 파일 (nginx.conf) 내 server 블록에 추가
if ($query_string ~* '^\-[sdcr]') {
    return 403;
}

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

웹 서버 액세스 로그에서 PHP 명령줄 옵션 주입 시도가 있었는지 점검하는 스크립트입니다.

bash
# Apache/Nginx 액세스 로그에서 취약점 악용 시도 검색
grep -Ei 'allow_url_include|auto_prepend_file|cgi_main' /var/log/nginx/access.log /var/log/apache2/access.log 2>/dev/null

# 현재 실행 중인 PHP-CGI 버전 확인
php-cgi -v
실무자 패치 대응 자가 점검 체크리스트
0/4 (0%)
권장 아키텍처 방어 통제 (Recommended Security Control)
Cloudflare Enterprise & Pro WAF
영향을 받는 레거시 PHP 버전을 즉시 지원 가능한 최신 안정 버전으로 업그레이드하고, 불필요한 CGI 설정을 비활성화하십시오.

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

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

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

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

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

본 취약점은 PHP의 CGI SAPI(sapi/cgi/cgi_main.c) 구현부에서 HTTP 쿼리 스트링을 적절히 파싱하지 못해 발생합니다. RFC 3875 규격에 따르면, 등호(=) 문자가 포함되지 않은 쿼리 스트링은 명령줄 인자(Command-line arguments)로 변환되어 CGI 프로그램에 전달되어야 합니다. 그러나 PHP-CGI는 이 과정에서 입력값 검증을 누락하여, 외부 사용자가 전달한 쿼리 스트링이 PHP 바이너리의 실행 옵션(예: -d, -s, -c 등)으로 그대로 해석되는 치명적인 결함을 가지고 있습니다.

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

공격자는 HTTP GET 요청의 쿼리 스트링에 등호(=)를 제외한 채 PHP 명령줄 옵션을 주입합니다. 예를 들어, '-d+allow_url_include=on+-d+auto_prepend_file=php://input'과 같은 인자를 전달하면, PHP 엔진은 이 설정을 동적으로 적용합니다. 이후 HTTP 요청 본문(POST Body)에 악성 PHP 코드를 실어 보내면, 'auto_prepend_file' 지시자에 의해 해당 코드가 즉시 실행되어 대상 시스템의 제어권을 완전히 탈취(RCE)할 수 있게 됩니다.

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

이 취약점은 CISA KEV(Known Exploited Vulnerabilities)에 등재되어 있으며, EPSS 점수가 1.0(최고치)에 달할 정도로 실제 공격에 매우 빈번하게 악용되는 취약점입니다. 공격 성공 시 웹 서버 권한으로 임의 명령 실행이 가능하므로, 데이터베이스 자격 증명 탈취, 웹쉘 설치를 통한 지속성 확보, 내부망 침투(Lateral Movement) 및 랜섬웨어 유포 등 비즈니스 인프라 전체에 치명적인 피해를 초래할 수 있습니다.

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

자주 묻는 실무 질문 (FAQ — CVE-2012-1823)

FAQ

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

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

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

주요 영향 벤더는 php이며, 대상 컴포넌트는 php입니다. 상세 영향 범위: PHP 5.3.12 미만 버전 및 PHP 5.4.0 ~ 5.4.1 버전 (CGI 모드로 구성된 경우에 한함)

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

[권장 조치] 최신 안전한 PHP 버전으로 업그레이드하거나, 웹 서버 설정을 통해 php-cgi에 대한 직접적인 쿼리 스트링 전달을 차단해야 함 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.

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

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

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

보고서 초안 생성하기 →

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

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

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

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

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