AI가 찾은 PHP 원격 실행 취약점 2건…긴급 패치 배포
PHP가 CVSS 9.2 원격 코드 실행 취약점 2건(PHP2Shell)을 고친 보안 업데이트를 배포했다. Wiz와 Calif는 AI 모델을 활용해 결함을 찾았다.
PHP 개발팀이 10월 21일(현지시간) 인증 없이 원격에서 서버 코드를 실행할 수 있는 핵심 엔진 취약점 2건(CVE-2026-109618, CVE-2026-109619)을 고친 보안 업데이트 PHP 8.5.12·8.4.27·8.3.36·8.2.35를 배포했다. 클라우드 보안 기업 Wiz 리서치는 같은 날 공개한 보고서에서 이 취약점을 'PHP2Shell'로 부르고, 발견부터 공격 코드 검증까지 AI 모델을 활용했다고 밝혔다.
핵심 정리
- PHP 개발팀은 CVE-2026-109618·CVE-2026-109619를 CVSS v4.0 기준 9.2점(긴급)으로 평가하고 8.5.12 등 4개 버전으로 수정했다.
- Wiz는 Gemini 4 Argon·GPT-5.6 Sol 등 AI 모델을 써 WordPress·Drupal·Joomla에서 로그인 없이 코드를 실행하는 공격을 시연했다고 밝혔다.
- PHP 8.1 이하는 공식 업데이트가 없어 7.4·8.0·8.1용 최소 백포트나 배포판 패키지로 대응해야 한다.
PHP2Shell 취약점은 무엇이고 얼마나 위험한가
PHP2Shell은 공격자가 로그인 없이 웹 요청만으로 PHP 웹 서버 계정 권한의 코드를 실행할 수 있는 메모리 안전성 결함이다. PHP 공식 보안 공지에 따르면 두 취약점 모두 CVSS v4.0 9.2점이며, PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed 등 웹 요청을 처리하는 모든 설치 환경이 영향을 받는다. 가장 위험한 환경은 mod_php로, 애플리케이션 코드가 실행되기 전 단계에서 공격이 성립하는 사례가 확인됐다.
CVE-2026-109618은 메모리 부족(OOM) 오류 처리 과정의 결함이다. 요청 데이터가 절반만 초기화된 상태에서 PHP가 작업을 중단하면, 요청 정리 단계가 잘못된 메모리를 정상 데이터로 읽는다. CVE-2026-109619는 치명적 오류 뒤에도 해제된 메모리를 가리키는 내부 상태가 남아, 같은 워커가 처리하는 다음 요청이 이를 재사용하는 문제다.
AI는 취약점 발견에 어떻게 쓰였나
Wiz 리서치 보고서에 따르면 연구팀은 자체 도구 Wiz Atlas와 구글 딥마인드의 Gemini 4 Argon, GPT-5.6 Sol을 연구 전 과정에 썼다. Wiz는 2개 CVE에 묶인 버그 4건을 공개했고, PHP 5.4 이후 지난 10년간 나온 거의 모든 버전이 적어도 하나의 버그에 노출된다고 설명했다. Wiz는 AI 덕분에 여러 애플리케이션에 통하는 공격 코드를 몇 시간 만에 만들었고, 연구원 1명이 일주일 만에 연구를 마쳤다고 주장했다. 외부 검증을 거친 수치는 아니다.
OpenAI도 같은 날 공식 블로그에서 보안 기업 Calif가 GPT-5.6 Sol로 두 취약점 중 하나를 찾았고, Wiz가 두 건을 독자적으로 발견해 보고했다고 밝혔다. OpenAI는 자사 취약점 대응 연합 'Patch the Planet'이 지난 두 달간 PHP 대응을 함께했다며, 운영자가 취약 버전을 점검할 수 있는 PHP 버전 확인 도구를 Codex 스킬 형태로 공개했다.
보고부터 패치까지 일정은
Wiz가 공개한 일정에 따르면 첫 버그는 8월 19일 발견됐고, 8월 20일과 21일 각각 Drupal과 WordPress에서 원격 코드 실행이 확인됐다. Wiz는 8월 24일 PHP 보안팀에 보고했고, PHP 측은 9월 21일 문제를 인정하고 수정에 들어갔다. 패치와 공개는 10월 21일 동시에 이뤄졌다.
개발자와 운영자가 해야 할 일
PHP 개발팀은 즉시 업데이트가 유일하게 안전한 선택이라고 강조했다. 당장 올릴 수 없다면 php.ini에서 session.upload_progress.enabled를 0으로 바꾸고 모든 워커를 재시작하는 등의 임시 조치를 제시했지만, 이 조치로 설치 환경이 안전해지지는 않는다고 못 박았다. Wiz는 메모리 한도 오류가 뒤따르는 비정상 멀티파트 요청, 반복되는 HTTP 500 응답, 비정상적으로 큰 PHPSESSID 쿠키를 침해 징후로 꼽았다.
AI 보안 연구 흐름에서 갖는 의미
PHP2Shell은 AI 모델이 웹 인프라의 오래된 핵심 코드에서 긴급 등급 취약점을 찾아낸 사례다. 최근 AI 에이전트를 이용한 코드 감사가 늘고 있지만, GitHub의 AI 감사 에이전트가 심각도 판단에서 반복해 오류를 낸 사례처럼 사람의 검증은 여전히 필요하다.
전망
공격 코드 제작 부담이 AI로 낮아진 만큼 패치 공개 이후 실제 공격 시도가 빠르게 나올 가능성이 있다. PHP 8.2는 2026년 12월 31일 지원이 끝나므로, 구버전 사용자는 이번 패치와 함께 지원 버전으로의 이전을 검토해야 한다.
자주 묻는 질문
PHP2Shell 취약점은 어느 버전에서 고쳐졌나?
PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35에서 고쳐졌다. PHP 8.1 이하는 공식 업데이트가 없으며, 보안팀이 7.4·8.0·8.1 소스 빌드용 최소 백포트를 공개했다. 리눅스 배포판 사용자는 배포판 패키지를 확인하면 된다.
WordPress 사이트도 PHP2Shell 영향을 받나?
받을 수 있다. 취약점이 애플리케이션이 아닌 PHP 엔진에 있어 WordPress·Drupal·Joomla 같은 CMS도 영향을 받으며, Wiz는 세 CMS에서 로그인 없는 코드 실행을 시연했다. 서버의 PHP 버전을 올리는 것이 근본 대책이다.
PHP2Shell은 AI가 혼자 찾아냈나?
아니다. Wiz와 Calif 연구진이 Gemini 4 Argon, GPT-5.6 Sol 같은 AI 모델을 도구로 활용했고, 보고와 수정은 사람이 진행했다. 패치는 PHP 메인테이너가 개발했다.
댓글 0
현재 댓글 작성이 비활성화되어 있습니다.