PHP2Shell은 PHP 핵심 런타임에서 발견된 두 가지 중대 취약점, CVE-2026-109618과 CVE-2026-109619를 함께 부르는 이름입니다. 두 취약점 모두 CVSS v4.0 기준 **9.2점(치명적)**으로 평가됐으며, 인증되지 않은 공격자가 취약한 서버에서 코드를 실행할 수 있습니다. PHP 프로젝트는 2026년 10월 21일 긴급 수정 버전을 공개했습니다.
47
관리자와 운영자가 우선할 일은 PHP를 수정 버전으로 업데이트하는 것입니다. 공개 전 아마존의 허니팟에서 공격 시도가 관측됐다는 보고도 나왔지만, 이는 실제 운영 서버가 침해됐다는 증거와는 다릅니다.
48
36
PHP2Shell 취약점은 어떻게 작동하나
두 취약점은 서로 다른 메커니즘과 관련이 있습니다.
- CVE-2026-109618은 메모리 부족(OOM) 처리 문제입니다. PHP가 메모리 부족 상황을 처리하는 도중 요청 관련 내부 데이터가 완전히 초기화되기 전에 처리가 중단될 수 있습니다. 이후 정리 과정에서 PHP가 유효하지 않은 데이터를 정상 데이터처럼 취급할 가능성이 있습니다.
58
- CVE-2026-109619는 오래된 내부 상태 문제입니다. 요청에 연결된 메모리가 해제된 뒤에도 관련 상태가 남아, 해제된 메모리를 다시 참조하는 문제가 발생할 수 있다고 보고됐습니다.
9
두 취약점은 파일 업로드에 흔히 쓰이는 multipart/form-data를 포함해, 조작된 HTTP 요청을 PHP가 처리하는 방식과 관련이 있습니다.
47 공격에 성공하더라도 실행되는 코드는 웹 워커 계정의 권한을 따릅니다. 따라서 곧바로 관리자나 루트 권한을 얻는다는 뜻은 아닙니다.
1
CVSS 9.2점의 의미와 한계
두 취약점은 모두 **CVSS v4.0 기준 10점 만점에 9.2점, 치명적(Critical)**으로 보고됐습니다. 로그인하지 않은 공격자가 취약한 서버에서 원격으로 코드를 실행할 수 있다는 점이 큰 위험 요인입니다.
47
다만 제공된 자료에는 전체 CVSS 평가 벡터가 없습니다. 따라서 개별 점수 항목이 어떻게 반영돼 9.2점이 됐는지 세부적으로 설명하기는 어렵습니다. 이 점수는 취약점의 심각도를 나타내지만, 특정 서버가 실제 공격을 받을 가능성이나 관측된 공격이 성공했는지를 알려주지는 않습니다.
영향받는 PHP 버전과 수정 버전
보고에 따르면 영향 범위는 PHP 5.4부터 시작합니다.
55 PHP 8.x 브랜치별 긴급 수정 버전은 다음과 같습니다.
| PHP 브랜치 |
수정 버전 |
| 8.2 |
8.2.35 |
| 8.3 |
8.3.36 |
| 8.4 |
8.4.27 |
| 8.5 |
8.5.12 |
이 버전들은 2026년 10월 21일 공개됐습니다. 현재 사용하는 브랜치에 해당하는 수정 버전이나 그 이후 버전으로 업그레이드해야 합니다.
47
위 목록은 8.2~8.5 브랜치에 해당합니다. 더 오래됐거나 지원이 종료된 브랜치를 사용한다면 PHP 배포자나 운영체제 공급업체의 보안 공지와 업그레이드 안내를 확인하세요. 표에 있는 버전이 구형 브랜치에도 그대로 적용된다고 가정해서는 안 됩니다.
공개 일정과 공격 시도, 확인된 침해는 구분해야
취약점 정보는 당초 예정된 공개일인 10월 22일보다 앞선 10월 20일에 공개됐고, PHP는 10월 21일 긴급 수정 버전을 배포했습니다.
8
42 정보가 조기 공개되고 수정 일정이 앞당겨졌다는 점은 확인되지만, Calif의 시연 영상이 실수로 공개된 일이 패치 조기 배포의 직접적인 계기였다고 단정할 근거는 없습니다.
아마존 위협 인텔리전스는 10월 17일자 MadPot 허니팟 텔레메트리에서 PHP2Shell 공격 시도를 확인했다고 밝혔습니다. 취약점 공개 나흘 전의 기록입니다. 아마존은 10월 21일 수정 버전이 공개된 무렵 개념증명(PoC) 익스플로잇도 확인했다고 보고했습니다. 허니팟은 공격자를 관찰하기 위한 미끼 시스템이므로, 이 기록만으로 실제 조직의 서버가 침해됐다고 볼 수는 없습니다.
48
Cloudflare는 공개 시점 전후로 방어 규칙을 배포했다고 밝혔고, 당시 보안업체들의 보고에는 공격 트래픽이나 시도가 관측됐다는 내용도 있습니다.
55
35 다만 공격의 규모와 성공 여부에 대한 보고는 일치하지 않았습니다. 일부 업체는 실제 공격이나 대규모 악용을 주장했지만, 같은 시기 보도에는 정부 기관이 성공한 공격을 확인하지 못했다는 내용도 실렸습니다.
33
36
따라서 공격 시도 보고는 심각하게 받아들이되, 모든 시도를 침해 성공으로 간주하거나 공격이 광범위하게 성공했다고 단정해서는 안 됩니다. 취약점에 대한 시도, 작동하는 익스플로잇의 존재, 운영 서버의 침해 확인은 서로 다른 단계입니다.
업데이트가 늦어질 때의 임시 대응
가장 확실한 해결책은 수정된 PHP 버전으로 업데이트하는 것입니다. AWS는 업그레이드만이 완전한 해결책이라고 안내했습니다. 즉시 패치할 수 없는 환경이라면 멀티파트 파일 업로드 차단 등으로 노출을 일시적으로 줄이는 방안을 고려할 수 있지만, 이는 업데이트를 대신하지 않습니다.
47
48
캐나다 사이버센터는 이 취약점들을 설명하고 인증 없는 코드 실행 위험을 알리는 중대 경보를 발표했습니다.
2 제공된 자료에는 즉시 업데이트할 수 없는 시스템을 오프라인으로 전환하라는 미국 국가안보국(NSA)의 권고도 소개돼 있습니다.
27 PHP가 제품에 포함돼 있거나 호스팅 업체가 관리하는 환경이라면, 해당 공급업체와 관련 정부 기관의 배포 환경별 안내를 확인하세요.
핵심은 간단합니다. PHP가 실행되는 시스템을 파악하고, 각 브랜치에 맞는 수정 버전을 적용한 뒤, 보안 경보를 신중하게 확인해야 합니다. PHP2Shell은 신속한 대응이 필요한 중대 취약점이지만, 공격 시도와 실제 침해는 같은 의미가 아닙니다.