홈 › 블로그 › PHP2Shell

PHP2Shell — AI가 찾아낸 14년 묵은 PHP 결함, 웹 70%가 밤새 패치한 이유

· 매거진 · 글:

10월 21일 밤 11시(한국 시간), 전 세계 웹사이트의 70% 안팎이 쓰는 언어 PHP가 긴급 보안 업데이트를 내놨습니다. 결함 이름은 PHP2Shell. 로그인도 없이 요청 몇 번으로 서버에서 명령을 실행할 수 있는 구멍 두 개입니다. 더 눈길을 끈 건 발견 과정입니다. 처음 찾은 연구자들 곁에는 AI 모델이 있었습니다. 무엇이 터졌고, 왜 「AI 보안의 분기점」이라는 말까지 나오는지 짚었습니다.

밤의 데이터센터 통로, 열린 서버 랙 앞에 무릎을 꿇고 점검하는 기술자와 카트 위의 노트북

패치가 나온 밤, 서버를 가진 사람들은 잠을 미뤘습니다. 이미지는 생성한 것입니다.

두 개의 구멍, 점수는 9.2

결함 번호는 CVE-2026-109618과 CVE-2026-109619. 둘 다 CVSS 4.0 기준 9.2점, 「치명(Critical)」 등급입니다(큐얼리스, 블리핑컴퓨터).

둘 다 메모리 정리의 빈틈입니다. 요청이 비정상으로 끝났을 때 망가진 메모리를 PHP가 그대로 다시 만지는 문제입니다. 공격자는 이 틈으로 서버에서 코드를 돌릴 수 있고, 작업자 메모리를 밖으로 빼낼 수도 있습니다. 그 안에는 비밀번호, 로그인 토큰, API 키가 섞여 있을 수 있습니다.

앱 코드가 한 줄도 돌기 전에 공격이 먼저 닿는다.

가장 위험한 건 아파치 mod_php 환경입니다. 애플리케이션 코드가 실행되기도 전에 공격이 걸립니다. PHP-FPM도 조건이 맞으면 뚫린다는 것이 확인됐습니다.

문제의 코드는 PHP 5.4(2012년) 때부터 있었다고 발견자들은 봅니다. 보안업체 산섹은 워드프레스, 드루팔, 마젠토, 넥스트클라우드 등 흔한 PHP 앱 11종에서 로그인 없는 원격 실행을 확인했습니다(산섹). 사이트 자체 코드가 깨끗해도 소용없다는 뜻입니다.

AI가 먼저 봤다

첫 결함은 8월, 보안업체 **칼리프(Calif)**가 찾았습니다. 오픈AI가 「패치 더 플래닛(Patch the Planet)」 사업으로 비용을 댄 PHP 소스 감사였고, 오픈AI의 GPT-5.6 Sol 모델이 거들었습니다. 몇 주 뒤 구글 산하 **위즈(Wiz)**도 따로 같은 결함들을 찾았습니다. 자체 플랫폼 위즈 아틀라스에 구글 제미나이 4 아르곤과 GPT-5.6 Sol을 함께 썼습니다(더넥스트웹).

칼리프는 8월 1일 첫 결함을 찾아 11일 PHP에 신고했고, 위즈는 8월 19일 따로 찾아 24일 신고했습니다(기가진). 칼리프는 선도 그었습니다. 누구나 쓰는 모델로 했고, 결정적인 건 PHP의 역사를 아는 사람이었다는 겁니다. "단순한 프롬프트로 '모든 버그'를 캐낼 수 있는 모델은 없다. 적어도 아직은."

새어 나간 이틀

원래 계획은 조용한 공개였습니다. 그런데 20일 세부 내용이 해커뉴스 게시판에 흘러나왔고, 공격 코드까지 돌기 시작했습니다. PHP는 공개를 앞당겼습니다.

클라우드플레어는 21일 03시 02분(UTC) 모든 고객에게 방화벽 규칙을 켰지만, 07시 43분부터 실제 공격이 잡혔습니다. 패치가 나온 14시보다 여섯 시간 이상 빨랐습니다. 영국 국가사이버보안센터(NCSC)와 CERT-EU는 바로 패치할 수 없으면 서버를 아예 내리라고 권고했습니다.

새벽빛이 드는 사무실에서 커피잔을 든 채 노트북 화면을 지켜보는 남성

밤샘 패치의 아침. 이미지는 생성한 것입니다.

하트블리드 이후 가장 큰 일

PHP 재단의 폴커 두슈는 월스트리트저널에 이번 일이 10여 년 만에 PHP가 맞은 가장 심각한 문제라며 2014년 하트블리드에 견줬습니다. 오픈SSL의 구멍으로 서버 메모리가 새어 나가 전 세계가 패치에 매달린 사건입니다.

오픈AI는 이번 일을 「방어자의 창(Defender's Window)」이라 불렀습니다. 범죄자보다 먼저 AI로 결함을 찾을 수 있다는 증거라는 겁니다. 앞으로 몇 달 동안 비슷한 발견이 급격히 늘 것이라고도 했습니다.

숙제도 보입니다. 찾는 속도가 빨라져도 고치는 쪽은 사람의 시간표로 움직입니다. 이번에도 신고에서 패치까지 두 달이 넘게 걸렸고, 정보는 그 사이에 새어 나갔습니다.

그래서 지금 무엇을 해야 하나

블로그 하나, 쇼핑몰 하나를 운영하는 사람도 이번 주만큼은 「내 사이트는 어떤 PHP 위에 서 있나」를 한 번 확인해 볼 때입니다.