앱을 우회하는 PHP 결함
PHP2Shell, 즉 CVE-2026-109618 및 CVE-2026-109619로 식별된 두 가지 치명적인 취약점이 인터넷을 강타했습니다. CVSS 점수 9.2로 보고된 이 버그들은 일반적인 애플리케이션 수준의 버그가 아니며, PHP 인터프리터의 핵심을 직접 타격합니다.
핵심 위험은 의외로 간단합니다. 특수하게 조작된 요청이 요청 처리 과정에서 메모리 부족(OOM) 상태를 유발할 수 있다는 점입니다. 이로 인해 손상되거나 오래된 상태가 남게 되며, PHP의 정리 루틴이 이를 잘못 처리할 수 있습니다. 결과는 무엇일까요? 인증되지 않은 원격 코드 실행(RCE)이 가능해지며, 공격자가 서버에 대한 완전한 제어권을 갖게 됩니다.
이것은 단순한 WordPress 플러그인 결함이 아닙니다. 문제는 애플리케이션 코드 아래, 즉 PHP 자체에 내재되어 있습니다. Wiz의 보안 연구원들은 다음과 같은 신규 설치 환경에서 PHP2Shell의 파괴적인 영향을 입증했습니다.
- WordPress
- Drupal
- Joomla
최소한의 "Hello World" 애플리케이션조차 취약한 것으로 판명되었습니다. 앱을 업데이트하는 것만으로는 해결되지 않으며, 반드시 PHP를 업데이트해야 합니다. 이러한 구분은 매우 중요하며, 일반적인 애플리케이션 계층 방어를 우회하고 언어 엔진을 직접 손상시키는 버그의 심각성을 강조합니다.
인터넷이 킬 스위치를 작동시킨 이유
인터넷의 약 70%를 구동하는 PHP의 광범위한 영향력은 PHP2Shell의 위협을 증폭시켰습니다. CVE-2026-109618 및 CVE-2026-109619 취약점은 10년이 넘는 기간 동안의 최신 및 레거시 PHP 배포판 모두에 영향을 미쳤습니다. 이러한 광범위한 노출은 플러그인이나 애플리케이션 버그가 아닌, 핵심 언어 결함이 웹의 방대한 부분을 위태롭게 했음을 의미합니다.
NSA, CISA, FBI, 영국 NCSC를 포함한 사이버 보안 기관들은 즉시 패치하거나, 제시간에 보안 조치를 취할 수 없는 경우 노출된 시스템을 오프라인으로 전환하라는 전례 없는 지침을 발표했습니다. 이는 권고 사항이 아니라 9.2라는 치명적인 CVSS 점수와 인증되지 않은 원격 코드 실행 가능성을 반영한 긴급 지시였습니다.
인터넷은 예방적 서비스 중단으로 대응했습니다. Wikipedia의 일부가 차단되었고, 4chan은 일시적으로 연결을 끊었으며, BreachForums와 같은 해커 포럼조차 자발적으로 사이트를 닫았습니다. 이러한 중단은 대규모 침해가 확인되어서가 아니라, 미지의 위협으로부터 스스로를 보호하기 위한 선제적 조치였으며, 상황의 심각성과 업계가 즉각적이고 가시적인 결과를 마주했음을 보여줍니다.
Reddit의 한 관리자는 20년 만에 처음으로 자발적인 웹사이트 셧다운을 단행했다고 언급했습니다. 이러한 집단적 행동은 PHP2Shell의 심각성과 일시적인 서비스 중단을 감수하면서까지 보안을 우선시하는 업계의 의지를 보여주었습니다.
비밀이 밝혀진 후 도착한 패치
PHP2Shell에 대한 조정된 공개 계획은 빠르게 무너졌고, 방어자들이 대응할 시간은 줄어들었습니다. 화요일 오후, CVE 세부 정보와 10.0이라는 잘못된 CVSS 점수가 Hacker News에 게시되면서 보안 커뮤니티와 잠재적 공격자들에게 조기 경보가 전달되었습니다. 이 유출로 인해 PHP Foundation은 릴리스 일정을 하루 앞당겨야 했습니다.
동시에, 해당 버그를 발견한 기업 중 하나인 Calif는 실수로 익스플로잇 작동 방식을 보여주는 영상을 게시했습니다. 영상은 즉시 삭제되었지만, 사본이 소셜 미디어를 통해 유포되면서 공격을 위한 위험한 청사진을 제공했습니다. 공식 릴리스 몇 시간 전, Chainguard는 독자적으로 패치된 PHP 컨테이너 이미지를 게시하여 사실상 엠바고를 깨뜨렸습니다.
각각의 유출은 방어자의 이점을 조금씩 갉아먹었습니다. 수정 사항이나 익스플로잇 시연이 공개되면, 화이트햇 연구자와 악의적인 공격자 모두 변경 사항을 리버스 엔지니어링하여 신뢰할 수 있는 익스플로잇을 개발하기 위해 경쟁하게 됩니다. PHP Foundation과 관리자들은 서둘러 수정 사항을 발표했고, Cloudflare 및 Vercel과 같은 기업들은 사전 통지를 받아 조용히 보호 방화벽 규칙을 배포했습니다. 재단의 대응에 대한 자세한 내용은 Today's PHP Security Release, and How We're Strengthening PHP Security를 참조하십시오.
공식 패치가 UTC 오전 2시에 배포되었을 때는 이미 비밀이 탄로 난 상태였습니다. 혼란스러운 공개 과정으로 인해 수정 사항이 공식적으로 제공되었을 때 이미 많은 사람이 정확히 어디를 확인해야 할지 알고 있었고, 계획되고 차분했던 릴리스는 시간과의 긴박한 공개 경쟁으로 변질되었습니다.
이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.
하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음
잊혀진 모든 PHP 서버 패치하기
운영자들은 이제 명확하지만 벅찬 과제에 직면했습니다. 모든 PHP 호스트 및 컨테이너의 인벤토리를 꼼꼼하게 작성하고, 정확한 런타임 버전을 확인하며, 공식 수정 릴리스 또는 신뢰할 수 있는 벤더 백포트를 적용해야 합니다. 중요한 점은 배포가 실제로 변경되었는지 확인하는 것입니다. 조용한 실패나 캐싱 문제로 인해 시스템이 노출될 수 있기 때문입니다.
긴 꼬리처럼 남아있는 레거시 설치가 가장 큰 위험을 나타냅니다. 스캔 결과 서버의 59%가 PHP 8.1 이하 버전을 실행 중인 것으로 나타났으며, PHP 7.4와 같은 일부 구형 브랜치는 Ondrej Surý와 같은 커뮤니티 관리자가 제공하는 별도의 빌드 패치가 필요했습니다. 모니터링되지 않는 이러한 잊혀진 서버들은 주요 공격 대상입니다.
PHP2Shell은 업계에 냉혹한 교훈을 줍니다. AI 지원 탐색은 취약점 연구와 익스플로잇 개발을 가속화할 것입니다. OpenAI의 GPT-5.6 Sol과 Google의 Gemini 4 Argon이 이번 발견에 기여했으며, 과거 몇 달이 걸리던 작업을 불과 몇 주 만에 단축시켰다고 보고되었습니다.
이러한 패러다임의 변화는 공개 프로세스와 패치 작업에 더 엄격한 일정을 요구합니다. 초기 유출과 우발적인 PoC로 특징지어지는 혼란스러운 PHP2Shell 배포는 단 몇 시간의 정보 유출만으로도 큰 혼란을 초래할 수 있음을 보여줍니다. 선제적인 패치와 강력한 사고 대응은 더 이상 선택 사항이 아니며, AI 시대 보안의 근간입니다.
자주 묻는 질문(FAQ)
PHP2Shell이란 무엇인가요?
PHP2Shell은 원격 코드 실행을 가능하게 할 수 있는 PHP 코어 런타임의 두 가지 치명적인 취약점에 붙여진 이름입니다.
WordPress를 업데이트해도 왜 PHP2Shell을 해결할 수 없나요?
결함은 WordPress나 플러그인이 아닌 PHP 자체에 있습니다. 애플리케이션을 호스팅하는 PHP 런타임을 패치해야 합니다.
PHP 사이트 운영자는 무엇을 해야 하나요?
모든 PHP 배포를 식별하고, 수정된 PHP 릴리스 또는 벤더 백포트를 설치하며, 공식 지침을 따르십시오. 시스템을 패치하거나 적절하게 보호할 수 없는 경우, 격리하거나 오프라인으로 전환하십시오.
공격자가 PHP2Shell을 악용한 사례가 확인되었나요?
출처에 따르면 익스플로잇 시도 활동은 보고되었으나, 게시 시점 기준으로 확인된 성공적인 악용 사례는 없습니다.

