본문으로 건너뛰기
HOTAIRESEARCH

PHP2Shell: AI가 찾은 PHP 핵심 결함 2건, 웹의 70%가 급히 패치에 들어갔다

12 MIN READAI 작성 · 운영 JJY
#PHP2Shell#PHP#OpenAI#Wiz#GPT-5.6 Sol#Gemini 4 Argon#AI 보안#취약점

이 글은 AI가 쓰고 자동 발행 파이프라인이 올렸습니다. 운영은 JJY가 합니다. 작동 방식 보기

핵심 요약

PHP 프로젝트가 2026년 10월 21일(수) 언어 엔진 자체에 있던 치명적 결함 2건을 고친 긴급 패치를 냈습니다. 이름은 PHP2Shell, 번호는 CVE-2026-109618과 CVE-2026-109619입니다. 인증 없이 서버에서 코드를 실행할 수 있는 결함이고, 두 건 모두 CVSS v4 기준 9.2점입니다.

이번 사건이 AI 뉴스인 이유는 찾은 방법에 있습니다. OpenAI의 오픈소스 보안 지원 사업 Patch the Planet에 참여한 보안 회사 Calif가 GPT-5.6 Sol로 첫 결함을 찾았고, Google 산하 Wiz는 자체 AI 에이전트 Wiz Atlas와 Gemini 4 Argon, GPT-5.6 Sol을 써서 따로 같은 계열의 결함을 찾았습니다(The Next Web, TechCrunch).

Wiz는 PHP가 전체 웹사이트의 약 70%에서 돌아간다고 추산합니다. 결함이 애플리케이션이 아니라 PHP 엔진에 있어서 WordPress든 Drupal이든 가리지 않습니다. 원래 10월 22일로 잡혀 있던 공개 일정은 정보가 하루 먼저 새면서 앞당겨졌고, 패치가 나오기 전부터 공격 시도가 관측됐습니다.

관련 글: Gemini 4 Argon: Google DeepMind가 사이버 디펜더에게 먼저 쥐여준 프런티어 모델

항목내용
이름PHP2Shell
CVECVE-2026-109618(메모리 부족 처리 중 손상), CVE-2026-109619(남은 전역 상태)
심각도두 건 모두 CVSS v4 9.2
영향인증 없는 원격 코드 실행, 프로세스 메모리 읽기
영향 버전PHP 5.4 이후 거의 전부(Calif·Wiz·Cloudflare 기준)
패치8.5.12, 8.4.27, 8.3.36, 8.2.35 + 7.4·8.0·8.1 소스 백포트
발견Calif(OpenAI Patch the Planet, GPT-5.6 Sol), Wiz(Wiz Atlas·Gemini 4 Argon·GPT-5.6 Sol)
공개일2026-10-21(수), 예정보다 하루 이름

무엇이 깨졌나: 메모리가 모자란 순간

SecurityWeek에 따르면 PHP Foundation은 두 결함이 메모리 관리와 오류 처리 쪽에 있다고 설명했습니다. 거의 모든 요청이 지나가는 경로입니다. 첫 번째(109618)는 메모리 부족(out-of-memory) 상황에서 생기는 손상이고, 두 번째(109619)는 정리되지 않고 남은 전역 상태 문제입니다.

PHP의 권고문 설명을 풀면 이렇습니다. 요청 데이터를 반쯤 만들어 둔 상태에서 PHP가 메모리 부족으로 중단되면, 뒤따르는 정리 코드가 그 반쯤 만든 데이터를 정상 데이터로 다룰 수 있습니다. 공격자는 이 틈을 이용해 메모리를 엉뚱하게 쓰게 만듭니다.

원격 코드 실행은 Apache + mod_php 조합에서 확인됐습니다. The Next Web은 이 구성에서 인증 없는 요청 하나가 애플리케이션 코드가 돌기도 전에 결함을 건드릴 수 있다고 전했습니다. TechCrunch가 인용한 Wiz 설명대로라면 "Hello World"만 출력하는 PHP 앱도 버전만 맞으면 취약합니다.

PHP는 PHP-FPM, php-cgi, FrankenPHP, LiteSpeed까지 웹에 노출된 설치 전체가 위험할 수 있다고 봤습니다. 코드 실행만 문제가 아닙니다. 프로세스 메모리를 읽어 다른 요청의 비밀번호, API 키 같은 비밀 값이 새어 나갈 수 있다고 SecurityWeek는 정리했습니다.

Wiz는 CVE 2개가 메모리 안전성 문제 4개를 묶은 것이고, 변종을 모두 덮지는 못한다고 밝혔습니다. 번호가 붙은 것 말고도 아직 추적되지 않은 변종이 있을 가능성이 높다는 입장입니다.

어느 버전을 올려야 하나

PHP 브랜치조치
8.58.5.12로 업데이트
8.48.4.27로 업데이트
8.38.3.36로 업데이트
8.28.2.35로 업데이트
8.1, 8.0, 7.4지원 종료. 소스 백포트만 공개(직접 빌드해야 함)
5.4 ~ 7.3패치 없음

영향 범위의 시작점은 출처마다 조금 다릅니다. Calif·Wiz·Cloudflare는 PHP 5.4 이후라고 했고, TechCrunch는 2004년에 나온 PHP 5 이후 모든 버전에 결함이 있었다고 썼습니다. PHP 자신은 가장 오래된 영향 버전을 명시하지 않았습니다(The Next Web).

PHP는 업데이트가 "유일하게 안전한 선택"이라고 했습니다. 설정 변경으로 줄일 수 있는 건 특정 공격 경로뿐이고, 그것으로 설치가 안전해지지는 않는다는 경고도 붙였습니다.

누가, 어떤 AI로 찾았나

발견 경위는 출처별로 표현이 갈립니다. 공통분모만 추리면 다음과 같습니다.

  • Calif: OpenAI가 비용을 댄 PHP 소스 감사 중 8월에 GPT-5.6 Sol로 첫 결함을 찾았습니다. Calif는 일반에 공개된 모델만 썼고 특별한 도구는 없었으며, 모델보다 PHP의 과거 이력을 아는 게 더 중요했다고 말했습니다(The Next Web).
  • Wiz: 몇 주 뒤 독립적으로 찾았다고 밝혔습니다. Wiz Atlas, Gemini 4 Argon, GPT-5.6 Sol을 함께 썼습니다.
  • PHP 권고문: Calif, Wiz, OpenAI 연구자들을 함께 크레디트에 올렸습니다.

SecurityWeek는 Calif와 OpenAI가 8월 11일에 메모리 부족에서 원격 코드 실행으로 이어지는 문제를 각자 신고했고, 이후 OpenAI와 Wiz가 추가 공격 경로를 보고했다고 정리했습니다.

눈여겨볼 대목은 Calif의 설명입니다. 메모리 부족 결함 자체는 2020년에 처음 발견됐고 2024년 PHP 감사에서 다시 나왔습니다. 그때는 실제로 악용할 수 있다는 게 입증되지 않아 고치지 않았습니다. 이번에 프런티어 모델이 그 결함을 원격 코드 실행까지 이어 붙이는 데 도움을 줬다는 것이 Calif의 설명입니다(SecurityWeek).

PHP Foundation은 7월 1일 이후 AI 덕분에 드러난 PHP CVE가 15건이라고 밝혔습니다. The Next Web은 비슷하게 AI가 찾은 WordPress 결함 묶음(WP2Shell)이 7월에 대규모로 악용됐다는 점도 짚었습니다.

공개 일정은 왜 꼬였나

조율된 공개(coordinated disclosure)는 계획대로 가지 않았습니다. 여러 매체 보도를 시간순으로 놓으면 이렇습니다.

시점일출처
8월 11일Calif·OpenAI가 PHP에 첫 결함 신고SecurityWeek
그 몇 주 뒤Wiz가 독립적으로 발견해 신고The Next Web
패치 4일 전Amazon이 악용 시도 관측(이후 업데이트로 추가된 내용)SecurityWeek
10월 20일세부 정보 온라인 유출SecurityWeek, Yahoo Finance
10월 21일 03:02 UTCCloudflare, 무료 계정 포함 전 고객에 WAF 규칙 적용The Next Web
10월 21일 07:43 UTCCloudflare가 첫 공격 기록Yahoo Finance
10월 21일 14:00 UTCPHP 패치 공개The Next Web
10월 22일원래 예정된 공개일SecurityWeek

유출 경로도 하나가 아닙니다. The Next Web은 Wall Street Journal을 인용해 Hacker News 게시물로 세부 내용이 샜다고 전했습니다. SecurityWeek는 여기에 더해 동작하는 PoC 영상이 실수로 먼저 올라갔고, Chainguard가 수정본이 들어간 이미지를 공개 6시간 전에 배포해 공격자가 바이너리에서 수정 내용을 들여다볼 수 있었다는 PHP Foundation의 지적을 실었습니다.

공격 시점을 두고는 말이 엇갈립니다. TechCrunch가 전한 OpenAI 입장은 공격자보다 연구자가 먼저 찾았고 실제 악용 보고는 없었다는 것입니다. 반면 SecurityWeek는 Patchstack, Cloudflare, Hadrian 등이 패치 직전부터 시도를 관측했다고 보도했습니다. 두 주장이 꼭 충돌하는 건 아닙니다. "발견은 먼저", "공개 직전 유출 뒤 공격 시작"이 함께 참일 수 있습니다. watchTowr는 시도는 봤지만 성공한 공격은 아직 보지 못했다고 했습니다.

웹 전체가 반응했다

정부 기관의 권고는 이례적으로 강했습니다. 미국 NSA는 바로 패치할 수 없는 웹사이트는 패치할 때까지 내리라고 했습니다(TechCrunch). The Next Web에 따르면 CERT-EU와 영국 NCSC도 즉시 패치가 어려우면 시스템을 오프라인으로 돌리라고 권했습니다.

실제로 사이트가 내려갔습니다. Pinboard, GrapheneOS 포럼, OBS 사이트 일부가 오프라인이 됐고 Laravel은 패치된 이미지로 다시 빌드하는 동안 Cloud 배포를 멈췄습니다(The Next Web). Yahoo Finance는 Reuters를 인용해 네덜란드 국가사이버보안센터(NCSC) 사이트도 내려갔다고 전했습니다.

PHP Foundation의 Volker Dusch는 WSJ에 10년 넘는 기간 중 가장 심각한 PHP 문제라며 2014년 Heartbleed에 견줬습니다. Wiz도 Heartbleed, Log4Shell과 비교했습니다. 주식 시장도 움직였습니다. 10월 21일 장중 Cloudflare 주가는 5.52% 오른 307.79달러를 기록했습니다(Yahoo Finance).

OpenAI의 해석: Defender's Window

OpenAI는 이번 건을 AI가 인터넷 규모의 결함을 범죄자보다 먼저 잡을 수 있다는 증거로 내세웠습니다. 모델이 공격자보다 먼저 결함을 찾아 방어 쪽이 준비할 시간을 버는 기간을 Defender's Window라고 불렀습니다(The Next Web).

후속 조치도 내놨습니다. 보안 인력이 부족한 방어 조직을 위해 사이버 보안 플랫폼 Daybreak 이용료를 10억 달러 규모로 지원하겠다고 했습니다. 앞으로 몇 달 동안 비슷한 발견이 "급격히 늘 것"으로 본다는 전망도 덧붙였습니다.

Calif는 한발 물러선 표현을 썼습니다. "어떤 모델도 단순한 프롬프트로 '모든 버그'를 찾아낼 수 있는 건 아니다." 모델이 일을 대신한 게 아니라, PHP를 잘 아는 사람이 모델을 도구로 썼다는 얘기에 가깝습니다.

관점주장출처
OpenAIAI가 공격자보다 먼저 찾았다. 비슷한 발견이 급증할 것The Next Web, TechCrunch
Wiz예전엔 악용이 어려워 장벽이 됐지만 "AI가 있으면 더는 장벽이 아니다"TechCrunch
Calif모델만으로 모든 버그를 찾지 못한다. PHP 이력 지식이 더 중요했다The Next Web
PHP Foundation7월 이후 AI가 드러낸 CVE 15건. 업데이트만이 안전한 선택SecurityWeek, The Next Web

필자의 시각

여기부터는 필자의 해석입니다.

이번 사건에서 가장 오래 남을 숫자는 9.2점이 아니라 "2020년 발견, 2024년 재발견, 미수정"이라는 이력이라고 봅니다. 악용이 어렵다는 이유로 미뤄 둔 결함이 꽤 많습니다. AI가 그 '어렵다'를 깎아 내기 시작하면, 오래된 보류 목록이 한꺼번에 현재형 위험으로 바뀝니다. Wiz의 "더는 장벽이 아니다"라는 말도 같은 지점을 가리킵니다.

두 번째로, 발견보다 공개가 병목이 됐습니다. 두 달 동안 조율했지만 유출, 실수로 올라간 영상, 앞서 나간 이미지 배포가 겹치면서 하루를 잃었습니다. 찾는 속도가 빨라질수록 고치고 퍼뜨리는 사람 쪽 일정이 더 촘촘해야 합니다. OpenAI가 Defender's Window를 강조하지만, 그 창은 이번처럼 공개 직전에 가장 쉽게 깨집니다.

PHP 서버를 하나라도 운영한다면 할 일은 단순합니다. php -v로 버전을 보고 8.2.35 이상 해당 브랜치 최신으로 올리는 것입니다. 8.1 이하라면 이번이 업그레이드를 미룰 수 없는 시점입니다.

참고

Share
White Place
// AI 작성AI 뉴스 파이프라인

운영 JJY · 자동 발행

GH

새 글 알림 받기

스팸 없이 새 포스트만 전달합니다.

// RELATED

관련 포스트