PHP 프로젝트는 10월 21일 보안 버전 4종을 한꺼번에 공개했다. 8.5.12, 8.4.27, 8.3.36, 8.2.35다. 수정 대상은 CVE-2026-109618과 CVE-2026-109619 두 건으로, CVSS v4.0 점수는 모두 9.2다. 인증 없는 원격 공격자가 악용할 수 있으며 최악의 경우 원격 코드 실행으로 이어진다. 공식 공지는 완전한 임시 완화책이 없고 업그레이드가 유일한 근본 해결책이라고 밝혔다.
이 취약점을 발견한 곳은 클라우드 보안 기업 Wiz로, 이번 사건에 PHP2Shell이라는 이름을 붙였다. Wiz 연구팀은 조사 과정에서 자사 Wiz Atlas와 함께 Google의 Gemini 4 Argon, OpenAI의 GPT-5.6 Sol을 사용했다.
문제는 엔진 자체에 있다
두 CVE 뒤에는 결함 네 가지가 있다. 업로드 진행률 역직렬화기의 use-after-free, 프로세스 메모리 원격 읽기, 치명적 오류 백트레이스의 use-after-free, 그리고 OPcache의 타입 혼동이다. 공통된 뿌리는 PHP가 치명적 오류, 특히 메모리 고갈로 발생하는 오류를 처리하는 방식에 있다.
요청이 비정상 종료되면 내부 상태에 손상된 데이터가 남는다. 같은 워커 프로세스가 다음 요청을 처리하면서 이 오래된 상태를 재사용하기 때문에 메모리 누수나 메모리 손상이 발생한다. 공격자는 코드를 실행하지 않고도 프로세스 메모리에서 비밀번호, 토큰, API 키를 읽어 낼 수 있다.
취약점은 PHP 엔진에 있으며, 상위 애플리케이션이 얼마나 안전하게 작성됐는지와는 무관하다. Wiz는 WordPress, Drupal, Joomla의 최신 컨테이너 이미지에서 모두 공격을 시연했고, Hello World만 출력하는 페이지도 당할 수 있다. 애플리케이션이 session_start()를 한 번도 호출하지 않아도 메모리 누수는 그대로 성립한다. 영향 범위는 PHP 5.4까지 거슬러 올라가며, 지난 10년간 나온 모든 버전이 적어도 한 가지 문제에 해당한다.
AI는 어느 단계에서 힘을 보탰나
Wiz가 밝힌 타임라인은 이렇다. 8월 19일 첫 번째 취약점을 발견하고, 8월 24일 PHP 보안팀에 신고했다. 9월 21일 PHP가 이를 확인하고 협조적 수정 준비에 들어갔으며, 10월 21일 공개됐다. 신고부터 패치 배포까지 거의 두 달이 걸렸고 대부분은 수정과 조율에 쓰였다.
Wiz에 따르면 Argon은 취약점 발견, 익스플로잇 작성, 공격 탐지, 패치 검증 단계에 참여했다. 대형 모델은 연구원이 익스플로잇 코드를 PHP 버전, 설정, 메모리 레이아웃에 맞게 조정하도록 도왔고, 실패하면 원인을 분석해 다시 시도했다. Wiz의 표현은 다음과 같다.
"Frontier AI models substantially reduced that barrier, turning a longstanding flaw into an exploit."
(최첨단 모델이 그 장벽을 크게 낮췄고, 오래전부터 있던 결함을 실제로 쓸 수 있는 익스플로잇으로 바꿔 놓았다.)
Wiz는 최상위 팀이 몇 달 걸리던 작업을 연구원 한 명이 일주일 만에 끝냈다고 주장한다. OpenAI도 이번 협조적 공개와 관련한 글을 올렸다. 보도에 따르면 OpenAI는 웹사이트가 영향을 받는지 점검할 수 있는 Codex 스킬도 공개했지만, 구체적으로 어떤 시나리오를 다루는지는 현재 항목별로 확인할 수 없다.
중국 구형 사이트의 골칫거리
중국에서는 수많은 중소 웹사이트, 기업 홈페이지, 포럼이 PHP로 운영된다. 호스팅 관리 패널의 원클릭 설치 환경을 쓰는 경우가 많고, 버전이 7.x에 머문 곳도 적지 않다. 공식 릴리스 목록을 보면 이번 패치는 8.2부터 8.5까지 4개 브랜치만 다룬다. 7.x는 이미 오래전에 지원이 끝나 공식 수정을 받을 수 없고, 8.2도 올해 12월 31일까지만 유지보수된다.
아직 업그레이드하지 않은 사이트를 위해 Wiz는 점검 신호를 몇 가지 제시했다. 비정상적인 multipart 요청 직후 메모리 초과 오류가 나는 경우, HTTP 500이 반복되는 경우, PHPSESSID 쿠키가 비정상적으로 크거나 형식이 깨진 경우, PHP 워커 프로세스가 자주 비정상 재시작되는 경우다. Cloudflare, Fastly, Google 등은 이미 방어 규칙을 적용했고 CDN을 쓰는 사이트는 일부를 막을 수 있지만, 공식 결론은 그대로다. 패치를 적용해야 끝난다.
참고 출처: PHP 공식 보안 공지, Wiz 연구 블로그, CocoLoop, OpenAI 보안 공지. 수정 버전 번호, CVE 번호, CVSS v4.0 점수, 영향 버전 범위를 확인했다.