어느 PHP 버전으로 업데이트해야 하나요?
| 현재 브랜치 | 업데이트 버전 | 지원 상태 |
|---|---|---|
| PHP 8.5 | 8.5.12 | 지원 중 |
| PHP 8.4 | 8.4.27 | 지원 중 |
| PHP 8.3 | 8.3.36 | 보안 수정만 제공 |
| PHP 8.2 | 8.2.35 | 2026년 12월 31일 지원 종료 |
| PHP 8.1·8.0·7.4 | 공식 릴리스 없음 | 지원 종료. 최소한의 소스 패치 또는 배포판 패치만 존재 — 업그레이드 권장 |
| PHP 7.3 이하·5.x | 패치 없음 | 업그레이드 필수 |
경과
- 2026년 10월 17일 — Amazon Threat Intelligence가 허니팟에서 악용 시도를 관측(공개 4일 전).
- 2026년 10월 20일 — php.net이 긴급 보안 릴리스를 예고.
- 2026년 10월 21일 — php.net이 권고문을 공개하고 8.5.12·8.4.27·8.3.36·8.2.35를 릴리스.
PHP2Shell이 심각한 이유
두 결함은 PHP가 메모리 부족 상황을 처리하고 요청 사이의 상태를 정리하는 방식에 있습니다. 조작된 요청이 내부 데이터를 불완전한 상태로 남기고, 같은 워커가 처리하는 다음 요청이 이를 재사용하면서 원격 코드 실행으로 이어집니다. PHPSESSID 쿠키를 통해 메모리가 유출되는 경로도 있습니다.
애플리케이션 코드가 실행되기 전에 발생하므로 WordPress 보안 플러그인이나 애플리케이션 수정으로는 막을 수 없습니다. PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed 등 웹 요청을 처리하는 모든 방식이 대상입니다.
바로 업데이트할 수 없을 때의 임시 조치
아래 조치는 노출을 줄일 뿐 취약점을 고치지는 못합니다(Datadog Security Labs). ini_set()이나 .user.ini가 아닌 php.ini 또는 FPM 풀에서 설정하고 모든 워커를 재시작하세요.
- session.upload_progress.enabled=0
- PHP 8.5: fatal_error_backtraces=0
- 관리자 설정(php_admin_value)으로 memory_limit=-1을 적용하고, 웹 서버·프록시의 요청 크기 제한과 컨테이너 메모리 제한을 함께 사용
- RLIMIT_AS / RLIMIT_DATA 프로세스 제한은 사용하지 않기
- CDN·WAF 규칙 활성화(Cloudflare는 알려진 공격 방식용 규칙을 배포) — 임시 보호막일 뿐입니다
- 패치할 수 없는 시스템은 영국 NCSC 권고대로 오프라인 전환 또는 격리
로그에서 확인할 징후
공식 침해 지표(IOC)는 아직 공개되지 않았습니다. 참고할 만한 징후(Wiz, Datadog):
- PHP 오류 로그의 “Allowed memory size … exhausted”와 “Unknown on line 0”
- POST 요청의 비정상적으로 큰 폼 필드나 바이너리 데이터
- HTTP 500 오류, 워커 충돌, 세그멘테이션 오류의 반복
- 응답의 비정상적으로 길거나 형식이 잘못된 PHPSESSID 쿠키
- 웹 워커(예: www-data)가 셸을 실행
Uptech의 PHP2Shell 대응 절차
- 무료 점검. 사이트별 호스팅 위치, 실제 웹 요청을 처리하는 PHP 버전과 위험도를 확인합니다.
- 백업과 임시 보호. 코드와 데이터베이스를 서버 외부에 백업하고, 업데이트 준비 중에는 임시 WAF 규칙과 설정을 적용합니다.
- 업데이트·업그레이드. 같은 브랜치의 패치 버전으로 업데이트하거나, PHP 7.4~8.1은 스테이징에서 검증한 후 업그레이드합니다.
- 테스트와 점검. 주요 페이지, 결제, 폼을 테스트하고 공격 흔적을 점검한 뒤 전후 비교 보고서를 전달합니다.
Uptech는 PHP 점검·업데이트·업그레이드 기술 서비스를 제공하는 기업이며 PHP 프로젝트가 아닙니다. 이 페이지의 사실 정보는 php.net과 아래 보안 연구 자료를 근거로 합니다. 절대적인 안전을 보장하는 조치는 없습니다.
출처
- php.net — Security advisory: Critical remote code execution vulnerabilities (21 Oct 2026)
- php.net — PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35 releases
- Wiz — PHP2Shell: critical RCE vulnerabilities in PHP
- Datadog Security Labs — PHP2Shell: detection, analysis and remediation
- Help Net Security — PHP2Shell: Critical PHP vulnerabilities patched
- Google Cloud — Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619