PHP2Shell 취약점 패치 버전 — 8.5.12·8.4.27·8.3.36·8.2.35, 공개 나흘 전부터 공격 시도
PHP2Shell is a pair of critical PHP flaws, CVE-2026-109618 and CVE-2026-109619, patched on October 21, 2026, that let an unauthenticated attacker run code on any PHP installation serving web requests, including PHP-FPM, mod_php, php-cgi, FrankenPHP and LiteSpeed. Fixed releases are PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35; Amazon's honeypots logged an exploit attempt on October 17, four days before disclosure.
PHP2Shell은 2026년 10월 21일 패치된 PHP 치명적 취약점 두 개(CVE-2026-109618·CVE-2026-109619)로, 로그인 없이 요청 하나로 웹서버에서 코드를 실행할 수 있다. 웹 요청을 처리하는 모든 PHP 설치가 대상이며, PHP 8.5.12·8.4.27·8.3.36·8.2.35로 올려야 막힌다. 8.1 이하는 공식 지원이 끝나 정규 패치가 없다
3줄 요약
- 취약점 — CVE-2026-109618·109619, 인증 없이 원격 코드 실행, CVSS 9.2
- 패치 — 8.5.12·8.4.27·8.3.36·8.2.35. 8.1 이하는 지원 종료로 정규 패치 없음
- 현황 — 10월 17일 공격 시도 포착, 노출 PHP 호스트 510만 개 추정
핵심 질문
- PHP2Shell 패치 버전
- **PHP 8.5.12·8.4.27·8.3.36·8.2.35다.** | 쓰는 버전 | 올릴 버전 | |---|---| | 8.5.x | 8.5.12 | | 8.4.x | 8.4.27 | | 8.3.x | 8.3.36 | | 8.2.x | 8.2.35 | | 8.1·8.0·7.4 | 소스 백포트 또는 배포판·LTS 업체 패치, 가능하면 8.2 이상으로 이전 | | 7.3 이하 | 수정판으로 이전 |
- PHP 버전 확인 방법
- **명령줄에서 php -v, 웹에서는 phpinfo()로 본다.** | 환경 | 방법 | |---|---| | 서버 명령줄 | php -v | | PHP-FPM | php-fpm -v | | 웹 페이지 | phpinfo() 출력(확인 후 반드시 삭제) | | 배포판 패키지 | 배포판 보안 공지의 패키지 버전 확인 | | 대량 점검 | 서치라이트 사이버 php2shell-scanner(공개 도구) |
- CVE-2026-109618 임시 조치
- **임시 조치는 완전하지 않다. 업데이트만이 근본 해결이다.** | CVE | PHP 팀 임시 완화책 | |---|---| | 109618 | memory_limit 고정, post_max_size 낮추기(8M·업로드 필요 시 32M), 컨테이너 메모리 제한 | | 109619 | session.upload_progress.enabled=0, 8.5는 fatal_error_backtraces=0 | | 공통 | 클라우드플레어 WAF 규칙(무료 요금제 포함) — 임시 |
PHP로 돌아가는 웹사이트라면 지금 버전부터 확인해야 한다. PHP 개발팀은 2026년 10월 21일 치명적 취약점 두 개를 긴급 패치했다. 묶어서 'PHP2Shell'이라 부른다. 로그인도 필요 없이 요청 하나로 웹서버에서 코드를 실행할 수 있고, 애플리케이션 코드가 돌기도 전에 공격이 먹힌다. 미국 사이버보안·인프라보안청(CISA)과 영국 국가사이버보안센터(NCSC)가 즉시 패치를 권고했다. NCSC는 바로 고칠 수 없는 시스템은 아예 내리라고까지 했다.
이 글은 "내 서버는 무엇을 해야 하나"에 답한다.
1. 어떤 취약점인가
| 항목 | CVE-2026-109618 | CVE-2026-109619 |
|---|---|---|
| 종류 | 메모리 부족(OOM) 처리 중 손상 → 원격 코드 실행 | 해제된 메모리에 남은 전역 상태 재사용 → 원격 코드 실행 |
| 원리 | 요청 데이터가 반쯤 초기화된 채 중단되면 정리 단계가 잘못된 데이터를 정상으로 취급 | 한 요청이 남긴 내부 상태가 다음 요청에서 초기화 전에 쓰임 |
| 인증 | 필요 없음 | 필요 없음 |
| 권한 | 웹 작업자 계정 | 웹 작업자 계정(메모리 노출 포함) |
| 발견 | 캘리프·오픈AI·위즈 연구진 | 같음 |
영향을 받는 것은 웹 요청을 처리하는 모든 PHP 설치다. PHP-FPM, 아파치 mod_php, php-cgi, 프랭컨PHP, 라이트스피드가 모두 해당한다. PHP 팀은 mod_php가 가장 위험하다고 봤다. 수십 년 묵은 코드에 있던 버그다.
2. 내 서버는 무엇으로 올려야 하나
| 지금 쓰는 버전 | 공식 지원 상태(php.net) | 할 일 |
|---|---|---|
| 8.5.x | 적극 지원(2027년 말까지) | 8.5.12로 |
| 8.4.x | 적극 지원(2026년 말까지) | 8.4.27로 |
| 8.3.x | 보안 수정만(2027년 말까지) | 8.3.36으로 |
| 8.2.x | 보안 수정만(2026년 12월 31일 종료) | 8.2.35로, 연내 8.3 이상 이전 계획 |
| 8.1·8.0·7.4 | 지원 종료 | PHP 팀 소스 백포트 또는 배포판·LTS 업체 패치 |
| 7.3 이하 | 지원 종료 | 수정된 버전으로 이전 |
버전 확인은 서버에서 php -v, PHP-FPM이면 php-fpm -v로 한다. 배포판 패키지를 쓰면 배포판 보안 공지의 패키지 버전을 봐야 한다. 리눅스 배포판과 LTS 업체는 공개 전에 패치를 받았다. 반면 자원봉사로 운영되는 rpms.remirepo.net 저장소는 공개 당일 업데이트가 없다고 알렸다. 여러 대를 한 번에 점검하려면 서치라이트 사이버가 10월 22일 공개한 오픈소스 도구 php2shell-scanner를 쓸 수 있다.
PHP 팀이 낸 임시 완화책도 있다. 109618에는 memory_limit을 바꿀 수 없게 고정하고 post_max_size를 8M(업로드가 필요하면 32M)으로 낮추며 컨테이너 메모리를 제한하는 방법, 109619에는 session.upload_progress.enabled=0 설정이다. PHP 핵심 개발자는 어떤 완화책도 공격을 완전히 막지 못한다고 했다. 클라우드플레어는 무료 요금제를 포함한 모든 고객에게 웹방화벽(WAF) 규칙을 배포했지만 역시 임시 방편이라고 밝혔다.
3. 이미 공격이 시작됐나
| 날짜 | 일 |
|---|---|
| 10월 17일 | 아마존 허니팟 '매드팟'에 공격 시도 기록 — 공개 나흘 전, 엠바고 중 |
| 10월 20일(화) | PHP 팀, 관리자에게 패치 대비 사전 공지 |
| 10월 21일 | 패치 공개, CISA 경보 |
| 10월 22일 | php2shell-scanner 공개, 팔로알토 "PAN-OS·파노라마 전 버전 영향, 수정판 아직" |
| 10월 23일 | PHP, 별도 취약점 CVE-2026-115560 공지(특이 설정에서만, 심각도 미정) |
아마존 위협 인텔리전스는 10월 17일 공격 시도가 상용 익명화 서비스와 연결된 IP에서 왔다고 했다. 공격자가 엠바고 중인 정보를 어떻게 얻었는지는 밝혀지지 않았다. 클라우드플레어 최고기술책임자는 패치 전부터 두 취약점에 대한 초기 공격을 관측했다고 말했다. 바이러스토탈은 인터넷에 노출된 PHP 호스트를 510만 개 이상으로 추정했다. 포티넷은 12개, 시스코는 31개 제품을 점검 중이다. 보안 장비 안에도 PHP가 들어 있어서다.
10월 24일 다룬 Node.js 취약점은 「Node2Shell(CVE-2026-111497)」에서 정리했다. 취약점 점수 읽는 법은 「CVSS란」, 지원이 끝난 버전이 왜 위험한지는 같은 날 「지원 종료(EOL)란」에서 설명했다.
4. 남은 것과 확인되지 않은 것
- 보안 장비: 팔로알토 PAN-OS 수정판, 포티넷·시스코 점검 결과가 아직 나오지 않았다.
- 세 번째 취약점: CVE-2026-115560의 영향 버전과 수정 시점이 공개되지 않았다.
- 사전 유출 경로: 공개 전 공격자가 어떻게 정보를 얻었는지 미확인이다.
- 실제 피해 규모: 침해된 사이트 수는 아직 집계가 없다.
출처
- 블리핑컴퓨터 — PHP ships emergency patches for critical PHP2Shell flaws
- 헬프넷 시큐리티 — PHP2Shell: Critical PHP vulnerabilities patched, update now! (2026-10-21)
- CISA — Critical Vulnerabilities in PHP Require Immediate Patching (2026-10-21)
- 더해커뉴스 — PHP Warns of Another Unpatched RCE Risk Two Days After Emergency PHP2Shell Patches
- PHP — Supported Versions