PHP 전역 상태 관리 결함에 따른 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-109619)
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTPHP 8.1, 8.2, 8.3 등 주요 버전 중 보안 패치가 적용되지 않은 전체 환경
공격자가 특수하게 조작된 HTTP 요청을 통해 서버의 메모리 제어권을 획득하고 원격 코드 실행(RCE) 가능
사용 중인 PHP 버전을 최신 보안 패치 버전으로 즉시 업데이트하고 PHP-FPM 등 관련 프로세스 재시작
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
PATCH & WORKAROUND가장 확실한 조치는 공식 보안 패치가 포함된 버전으로 업그레이드하는 것입니다.
1. 패키지 업데이트 (Ubuntu/Debian 예시)
sudo apt-get update
sudo apt-get install --only-upgrade php8.32. 서비스 재시작
패치 적용 후 반드시 PHP-FPM 또는 Apache 서비스를 재시작해야 메모리상의 취약한 바이너리가 교체됩니다.
sudo systemctl restart php8.3-fpm
# 또는 Apache 사용 시
sudo systemctl restart apache23. 임시 완화 조치
즉각적인 업데이트가 어려운 경우, WAF(Web Application Firewall)에서 비정상적으로 긴 헤더나 복잡한 멀티파트 요청을 차단하는 규칙을 강화하십시오.
코드 수정 전에도 가상 패치(Virtual Patching)로 웹 공격을 즉시 차단하세요
서버 재시작이나 긴급 패치가 어려운 운영 환경이라면 클라우드 WAF 관리형 룰셋을 활성화하여 SQLi, RCE, XSS 익스플로잇 페이로드를 엣지에서 1분 만에 차단할 수 있습니다.
취약점 발생 원리 및 공격 메커니즘
본 취약점은 PHP 엔진이 요청(Request) 간의 전역 상태(Global State)를 초기화하는 과정에서 발생하는 Use-After-Free(UAF) 결함입니다. PHP는 성능 최적화를 위해 요청 처리 중 할당된 메모리를 전역 포인터가 참조하도록 설계되어 있는데, 특정 시나리오에서 요청이 종료된 후에도 이 포인터가 해제된 메모리 영역을 계속 참조하는 현상이 발생합니다. 이후 새로운 요청이 들어올 때, 초기화되지 않았거나 이전 요청의 잔재가 남은 메모리 영역을 참조하게 되며, 공격자는 이를 정교하게 조작하여 실행 흐름을 가로채고 임의의 명령어를 실행할 수 있습니다. CISA KEV에 등재된 만큼 실제 공격 사례가 확인되고 있어 매우 위험합니다.
공식 보안 권고문 및 참조 링크
PHP has various global state that temporarily points into request memory. In some scenarios, global state may not be correctly reset, or may be repopulated after being reset. The global state may then refer to request memory even after it has been freed. Subsequent requests may read or branch on this stale state before it is fully initialized. Multiple strategies can trigger this condition and produce remote code execution (RCE).
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.