10년 묵은 PHP 결함, AI가 끝내 찾아냈다 (feat.노말틱)
Quick Summary
AI를 활용한 보안 연구가 10년 넘게 남아 있던 PHP 결함의 실제 공격 경로를 입증하면서, 오래된 취약점의 근본 해결과 신속한 패치 대응의 중요성이 드러났다.
영상 보기
클릭 전까지는 가벼운 미리보기만 먼저 불러옵니다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 결론
AI를 활용한 보안 연구가 10년 넘게 남아 있던 PHP 결함의 실제 공격 경로를 입증하면서, 오래된 취약점의 근본 해결과 신속한 패치 대응의 중요성이 드러났다.
📌 핵심 요점
- 이번 문제는 개별 웹사이트의 코드가 아니라 PHP 엔진의 결함이다. 공통 실행 기반의 문제인 만큼 여러 사이트로 영향이 확산될 수 있지만, 실제 공격 가능성은 서버 환경에 따라 달라진다.
- 웹쉘을 확보하면 공격자는 서버에 명령을 실행할 수 있다. 웹서버에 연결된 데이터베이스와 내부망까지 침해가 이어질 수 있어 피해가 홈페이지에만 머물지 않는다.
- 영상은 문제의 뿌리를 2004년 제기된 메모리 한도와 비상 탈출 처리로 설명한다. 메모리 부족이 발생하는 일부 경로를 막아도, 작업을 정리하지 않고 빠져나오는 구조의 위험은 남을 수 있다.
- 연구자는 이미 알고 있던 문제를 바탕으로 AI의 도움을 받아 공격 경로를 완성했다. 핵심은 AI가 전문가의 지식과 결합해 연구에 필요한 시간을 줄였다는 점이다.
- 공개 일정 혼선과 시연 영상의 조기 노출은 대응 시간을 압박했다. 국내에서도 PHP 기반 사이트와 워드프레스 같은 CMS가 점검 대상이며, 운영 언어와 PHP 버전 확인이 출발점이다.
🧩 배경과 문제 정의
영상은 노말틱과의 대화를 통해 오래된 PHP 결함이 AI 보조 연구로 실제 공격 가능한 문제로 입증된 과정과 공개 과정의 혼선을 설명한다. PHP는 웹서버에서 프로그램을 실행하는 언어이자 실행 엔진으로 소개되며, 이번 문제는 개별 사이트보다 여러 사이트가 공유하는 기반 구성요소의 위험에 초점을 맞춘다.
문제의 중심은 메모리 한도를 넘었을 때의 비상 탈출 처리다. 영상은 과거 수정이 일부 메모리 부족 상황을 피하는 데 집중했고, 작업을 정리하지 않고 종료하는 구조의 위험은 남았다고 설명한다. 여기에 연구자의 사전 지식과 AI의 시간 단축 효과가 결합하면서 공격 경로 입증으로 이어졌다는 것이 핵심 서사다.
🕒 시간순 섹션별 상세정리
1. 에어백 비유와 오래된 PHP 결함의 재등장
- 구멍 난 에어백을 수리하는 대신 사고가 나지 않게 운전하도록 교육하는 비유로, 문제의 발생을 피하는 대응과 근본 수리의 차이를 제시한다. [00:21]
- 로그인 없이 서버를 장악할 수 있는 PHP 결함을 소개하고, 웹쉘은 인터넷을 통해 서버에 명령을 내리는 창구라고 보여준다. [01:17]
- 문제 코드가 10년 넘게 남아 있었으며 AI를 활용한 연구자가 공격 경로를 찾았지만, 패치 적용 전에 정보가 먼저 퍼져 혼란이 생겼다고 예고한다. [01:49]
2. PHP와 웹사이트를 실행하는 엔진의 역할
- PHP는 웹서버 위에서 동작하는 프로그램을 만드는 언어이며, PHP 엔진이 코드를 읽고 실행해 웹사이트를 작동시킨다고 보여준다. [02:46]
- 사용자마다 다른 페이지를 제공하는 동적 웹사이트를 예로 들어 서버 프로그램의 역할을 풀어낸다. [03:13]
- 기기별 화면과 사용자별 뉴스 구성을 사례로 들어, 웹사이트가 이용 조건에 따라 다르게 보일 수 있음을 보여준다. [03:39]
3. 개별 사이트보다 넓게 번질 수 있는 엔진 결함
- 이번 문제는 특정 금융사나 서비스 홈페이지의 취약점이 아니라, 사이트를 실행하는 PHP 엔진의 문제라고 구분한다. [04:03]
- 공격 대상이 사용하는 시스템과 플랫폼을 겨냥한다는 점에서 공급망 공격과 비슷한 관점으로 보여준다. [04:18]
- 공통 실행 기반에 결함이 있으면 PHP로 개발된 여러 웹사이트가 영향 범위에 들어갈 수 있다는 점을 심각성의 이유로 든다. [04:44]
4. 웹쉘에서 데이터베이스와 내부망으로 이어지는 위험
- 서버에서 명령을 실행할 수 있다는 것은 파일을 찾아보는 등 자신의 컴퓨터처럼 서버를 사용할 수 있다는 의미로 드러난다. [05:21]
- 웹서버에는 데이터베이스 접속 정보나 연결 경로가 있는 경우가 많아 개인정보와 중요 정보의 유출로 이어질 수 있다고 드러낸다. [05:59]
- 외부에 노출된 웹서버가 내부망과 연결되어 있으면, 서버 장악이 내부 침투의 출발점이 될 수 있다고 보여준다. [06:34]
5. 메모리 한도와 정리 없이 빠져나오는 비상 탈출
- 문제의 뿌리를 2004년 제기된 PHP 메모리 한도 문제로 거슬러 올라가며, 요청 하나가 메모리를 무제한 점유하지 못하도록 제한하는 기능을 보여준다. [07:13]
- 메모리 부족 상태인 OOM이 발생했을 때의 대응도 코드로 구현되어야 하며, PHP에는 ‘베일아웃’이라는 비상 탈출 기능이 있었다고 드러낸다. [07:55]
- 이 기능이 작업을 정리하지 않고 빠져나가는 문제를, 직원이 인수인계 없이 갑자기 퇴사하는 상황에 비유한다. [08:15]
6. 발생 경로를 막는 수정과 반복된 문제 제기
- 당시 수정은 OOM 발생 뒤의 처리 과정보다 OOM이 발생하지 않도록 하는 방향이었다고 설명하며 에어백 비유를 다시 연결한다. [08:52]
- 다른 경로에서도 OOM이 발생할 수 있어 문제가 계속 제기됐고, 2020년과 2024년에도 관련 지적이 있었다고 드러낸다. [09:11]
- 공격 가능성을 실제로 보여주기 어려워 우선순위가 낮아졌다는 해석을 제시한다. 당시 대응 이유에 대한 설명에는 출연자의 추측이 포함된다. [09:37]
7. 연구자의 사전 지식과 AI가 결합한 공격 경로 입증
- 기존 OOM 문제에 관심을 두던 연구자가 AI를 활용해 이전에 입증하지 못한 공격 경로를 완성하려 했다고 보여준다. [10:08]
- 진행자는 AI를 활용해 일주일 만에 해냈다는 속도에 주목하지만, 출연자는 연구자가 이미 알고 있던 내용을 바탕으로 작업했다는 점을 강조한다. [10:51]
- AI의 의미는 연구자가 시간만 충분하면 할 수 있었을 작업을 단축해, 현실적인 연구 시간 제약을 줄이는 데 있다고 평가한다. [11:11]
8. 공개 일정 혼선과 시연 영상의 조기 확산
- 개발사가 패치를 준비할 시간을 확보하도록 먼저 제보하고 공개를 기다리는 윤리적 공개 절차를 보여준다. [12:14]
- 예정된 10월 22일 공개에 앞서 루머와 확인 발언이 나오면서 공개가 21일로 당겨졌고, 시연 영상도 먼저 올라왔다 내려간 것으로 보여준다. 영상 게시 경위에는 추정이 섞여 있다. [12:58]
- 공격 성공을 보여주는 PoC 영상이 빠르게 퍼졌고, 유럽의 일부 공공기관과 민감정보 취급 업체가 웹사이트를 닫았다고 전해진다. [13:38]
9. 환경별 공격 난도와 공개 전 공격 관측
- 메모리 관련 공격은 PHP 버전, 운영체제, CPU와 메모리 환경에 영향을 받아 성공시키기 까다로웠으며, 통일된 공격 코드가 없었다고 보여준다. [14:16]
- 아마존의 공격 관측용 서버에서 공식 공개보다 앞선 10월 17일 공격 시도가 발견됐다는 이야기를 소개하고, 공개 전 정보 유출 가능성을 지적한다. [15:03]
- 높은 관심이 공격 시도와 무기화를 부추겼다고 평가하며, 그 과정에도 AI가 역할을 했을 것이라는 견해를 드러낸다. [15:27]
10. 국내 자바 중심 환경과 PHP 운영의 사각지대
- 국내 사이버 위기 경보 상향을 언급한 뒤, 자바 중심의 국내 환경이 PHP 문제의 체감 영향을 줄였을 수 있다고 보여준다. [16:15]
- 자바 사용 비중이 높으면 자바 관련 취약점에는 반대로 위험이 커질 수 있으며, 국내에도 PHP 기반 사이트가 존재한다고 강조한다. [16:48]
- 워드프레스와 드루팔 같은 PHP 기반 CMS를 예로 들며, 보안 여력이 부족한 운영자는 PHP 사용 여부나 사이트의 존재 자체를 파악하지 못할 수 있다고 지적한다. [17:15]
11. 오래된 결함의 재발견과 근본 해결의 선택
- AI가 오래된 코드의 결함을 드러내는 사례가 늘어날 것으로 전망하며, 이어서 나왔다는 노드 JS 엔진 관련 취약점도 언급한다. [17:50]
- 당장 발생한 문제를 빠르게 막는 선택과 어렵더라도 근본 원인을 해결하는 선택 사이의 갈림길을 이번 사건의 교훈으로 정리한다. [18:16]
- AI의 도움으로 문제가 드러난 과정과 패치보다 정보가 먼저 퍼졌을 때의 혼란을 함께 돌아본다. [18:29]
12. 운영 언어와 버전 확인으로 마무리
- 취약점을 찾아내는 속도가 빨라지는 만큼 공개된 문제가 실제 공격으로 이어지는 시간도 짧아진다는 메시지를 전해진다. [18:37]
- 사이트 운영자에게 PHP와 자바 중 무엇으로 운영되는지, PHP라면 어떤 버전인지 바로 확인해 보라고 권한다. [18:52]
- 디지털 안전에 도움이 되기를 바란다는 인사와 함께 대화를 마친다. [19:02]
🧾 결론
- 오래 사용해 온 코드라도 실제 공격 경로가 입증되지 않았다는 이유만으로 안전하다고 판단하기 어렵다.
- 특정 오류가 발생하지 않도록 막는 수정과 오류 발생 시 상태를 안전하게 정리하는 근본 해결은 구분해야 한다.
- AI의 보안상 영향은 연구자의 분석과 검증 시간을 단축하는 데서 나타난다. 영상은 공격자도 이런 도구를 활용할 가능성을 제기한다.
- 취약점 발견 이후에는 패치 준비, 공개 일정 조율, 운영자의 적용까지 연결되어야 대응 효과를 낼 수 있다.
📈 투자·시사 포인트
- 보안 역량을 평가할 때 취약점 탐지 능력과 함께 패치 적용 속도, 운영 자산 파악 수준, 공개 대응 절차를 살펴볼 필요가 있다.
- 공통 엔진과 플랫폼에 의존하는 서비스는 기반 구성요소의 결함이 여러 서비스로 번지는 위험을 고려해야 한다.
- AI 보안 도구의 실용성은 전문가가 기존 문제를 검증하고 공격 가능성을 판단하는 시간을 얼마나 줄이는지로 평가할 수 있다.
- 국내의 자바 중심 환경이 이번 PHP 문제의 체감 영향을 줄였다는 설명은 기술 집중에 따른 다른 취약점 위험도 함께 생각하게 한다. 영상만으로 특정 기업의 실적이나 투자 수익을 판단할 근거는 없다.
⚠️ 불확실하거나 확인이 필요한 부분
- 자막에는 취약점 명칭이 ‘PHP2’, ‘HP2’, ‘PP2’ 등으로 혼재한다. 정확한 공식 명칭, 식별 번호, 영향 버전과 수정 버전은 제공된 자료만으로 확정할 수 없다.
- 제목의 ‘10년 묵은 결함’과 본문의 ‘2004년 문제 제기’는 구분해 읽어야 한다. 초기 문제 제기부터 이번 공격 경로 입증까지의 정확한 코드 변경 이력은 제시되지 않는다.
- 2024년 당시 대응을 미룬 이유와 시연 영상을 먼저 올린 경위에는 출연자가 추측이라고 밝힌 설명이 포함된다. 확인된 의사결정 기록처럼 받아들이기 어렵다.
- 자막 기반 정리: 타임스탬프가 있는 자막을 기준으로 정리했으며, 고유명사·수치·인용은 원문 확인 필요 시 별도 검증한다.
- 영상 속 주장: 발표자의 해석·전망·비교는 확인된 외부 사실이 아니라 영상 속 주장으로 분리해 읽는다.
- 검증 필요: 수치, 기업 실적, 정책·시장 전망은 발행 전 최신 자료로 별도 검증이 필요하다.
✅ 액션 아이템
- 운영 중인 웹사이트와 CMS를 목록으로 만들고, PHP 사용 여부 및 사용 버전을 확인한다.
- 유지보수 담당자에게 해당 PHP 버전의 영향 여부와 보안 패치 적용 상태를 확인한다. 영상에는 정확한 영향·수정 버전이 제시되지 않았음을 함께 전달한다.
- 웹서버에 저장된 데이터베이스 접속 정보와 내부망 연결을 점검해, 서버 침해가 어디까지 확산될 수 있는지 파악한다.
- 과거 메모리 부족 관련 수정이 특정 발생 경로만 막았는지, 오류 발생 뒤 정리 과정까지 다뤘는지 검토한다.
❓ 열린 질문
- 이번 공격 경로에 실제로 노출되는 PHP 버전과 서버 구성은 무엇이며, 운영자는 어떤 기준으로 영향 여부를 판정해야 할까?
- AI는 연구 과정에서 어떤 분석과 검증을 맡았고, 연구자가 직접 제공한 지식과 판단은 무엇이었을까?
- 반복적으로 지적된 오류 처리 문제를 근본 수정 대상으로 올리려면 어떤 증거와 우선순위 기준이 필요할까?