PHP2Shell 버그를 찾아낸 연구진은 자신들의 툴체인에서 AI가 한 일과 하지 못한 일을 솔직하게 밝혔습니다. 보안 업체 Calif는 분석 보고서에서 "어떤 모델도 간단한 프롬프트만으로 '모든 버그'를 찾아낼 수는 없습니다. 적어도 지금은 그렇습니다"라고 썼습니다. TechCrunch가 인용한 말입니다. 기계가 사람이 고치는 속도보다 빠르게 결함을 찾는다는 헤드라인을 볼 때 이 문장을 기억해 두세요. 헤드라인은 대체로 맞지만, 세부 내용은 더 묘합니다.
서로 다른 이야기 여러 건이 같은 지점으로 모이고 있습니다. Google은 취약점 사냥용으로 만든 모델을 내놓았습니다. Anthropic은 아직 공개하지 않은 모델이 만든 익스플로잇 체인을 공개했습니다. OpenAI는 자사 에이전트가 널리 쓰이는 압축 라이브러리에서 허점을 찾아냈다고 밝혔습니다. 그리고 세계에서 가장 흔한 웹 언어에는 긴급 패치가 필요했습니다. 이 사건들이 어떻게 맞물리는지, 누가 유리한지, 소규모 사이트 운영자가 점심 전에 할 수 있는 일은 무엇인지 정리합니다.
PHP 버그는 오래된 것이었습니다. 달라진 것은 누가 쓸 수 있느냐입니다
이 두 결함은 PHP2Shell이라 불리며 CVE-2026-109618, CVE-2026-109619로 추적됩니다. 비밀번호 없이도 인터넷을 통해 서버에서 코드를 실행할 수 있고, 2004년에 나온 PHP 5부터 모든 버전에 존재했습니다(TechCrunch). PHP는 WordPress, Drupal, Joomla, MediaWiki를 포함해 웹에 노출된 사이트의 약 70%를 뒷받침합니다.
아무도 이 버그를 악용하는 데 성공하지 못했습니다. PHP Foundation은 2024년에 이 버그를 파악하고도 현실적으로 악용할 방법이 없다고 보고 패치하지 않았습니다(TechCrunch). 올해 초 Calif 연구진이 OpenAI와 Wiz의 오픈소스 보안 프로그램의 일환으로 AI 모델의 도움을 받아 악용 방법을 알아냈습니다. TechCrunch 팟캐스트 진행자 한 명은 처음에 AI 모델이 허점을 찾았다고 말했다가 이후 글에서 바로잡았습니다. 허점을 찾은 쪽은 사람 연구원이고, 버그를 악용하는 데 AI를 썼다는 내용입니다(TechCrunch).
저희는 이 정정이 이번 사태에서 가장 유용한 사실이라고 봅니다. 모델이 버그를 발견하는 것은 비교적 작은 변화입니다. 더 큰 변화는 모델이 익스플로잇을 다양한 환경에 맞게 조정할 수 있게 되면서, '이론상'으로 분류돼 있던 버그가 현실의 위협이 된다는 점입니다. Wiz는 자체 게시글에서 이렇게 표현했고, TechCrunch가 이를 인용했습니다. "AI가 있으면 이는 더 이상 장벽이 아닙니다. LLM은 익스플로잇을 다양한 PHP 버전, 설정, 메모리 레이아웃에 맞게 조정하도록 도울 수 있습니다."
패치는 대형 호스팅 업체와 클라우드 기업이 엠바고 아래에서 먼저 확인한 뒤 PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35로 배포됐습니다. 이후 NSA는 즉시 패치할 수 없는 시스템은 인터넷에서 분리하라고 사이트 운영자들에게 권고했고, 은행, 소매업체, 병원, 일부 정부 기관이 실제로 그렇게 했습니다(TechCrunch).
공격은 패치보다 먼저 시작됐습니다
Amazon은 허니팟에서 공개 4일 전에 두 결함을 겨냥한 시도가 기록됐다고 밝혔습니다. Cloudflare는 발표 후 45분 만에 수만 건이던 시도가 다음 날 아침에는 수백만 건으로 늘었다고 보고했습니다(The Hacker News). PHP Foundation은 엠바고가 끝나기 몇 시간 전에 패치를 먼저 공개한 한 회사를 탓했습니다. 하지만 며칠 전의 활동은 이것으로 설명되지 않으며, 저희가 확인한 보도 기준으로는 초기 공격자가 어떻게 알았는지 밝힌 곳이 없습니다.
이후 공격은 구체적으로 변했습니다. 보안 업체 Dream은 중국 연계로 의심되는 공격자가 PHP2Shell과 Linux 커널 결함을 연쇄적으로 이용해 서버 25대의 root 권한을 탈취했다고 추적했고, 그중 3대는 미국 정부 관련 네트워크 안에 있었습니다. 표적은 PHP 8.0.30을 쓰는 방화벽 어플라이언스였습니다. Dream 연구진은 "우리가 확보한 구현은 비공개 맞춤 빌드이며, 알려진 어떤 PHP2Shell 공개 익스플로잇의 복사본도 아닙니다"라고 밝혔습니다(The Hacker News). 또 공격자 인프라에서 Claude Code가 설치된 것과, DeepSeek 및 Kimi 모델에 연결된 공격용 보안 도구도 발견했는데, 이는 도구 제작에 AI의 도움이 있었음을 시사합니다. 다만 공격 주체에 대한 판단은 Dream의 해석일 뿐 확정된 사실이 아닙니다.
CISA는 패치 5일 후 실제 악용을 확인하고 두 결함을 Known Exploited Vulnerabilities 카탈로그에 추가했으며, 민간 연방 기관에는 시스템을 수정할 시간으로 3일을 줬습니다(TechCrunch). 한 가지 더 짚어 두자면, 일부 연구진은 안정적인 익스플로잇을 만드는 일이 우려했던 것보다 어렵다고 말하며, Mirai 봇넷 변종을 심으려는 초기 시도는 지금까지 실패했습니다(The Hacker News).
Google은 모두가 원하는 스캐너를 만들었지만, 대부분은 쓸 수 없습니다
Google은 PHP 사태 수습이 이어지는 가운데 Gemini 4 Carbon을 발표하며, 이 모델을 "최고 수준의 사이버 보안 및 장기 과업 수행 능력"을 갖춘 가장 강력한 모델이라고 소개했습니다(Google). Google에 따르면 Carbon은 실제 취약점 발견을 측정하는 SEC-bench Pro에서 88.2%, 취약점 악용을 측정하는 ExploitGym에서 54.8%, 수정 코드 작성을 측정하는 CWE-bench에서 71.0%를 기록했습니다. 또한 Chrome 팀이 고품질 패치를 만드는 데 있어 Carbon이 다른 연구소의 최상위 모델보다 10배 넘게 낫다고 평가했다고 밝혔습니다. Google이 소유한 Wiz는 Carbon이 웹 침투 테스트 벤치마크에서 선두라고 보고합니다.
이는 가드레일 없이 실행한 Google의 수치이고, 세 벤치마크는 측정하는 대상이 달라서 서로 빼서 비교하면 안 됩니다. 눈여겨볼 점은 패치가 성적표에 들어갔다는 사실 자체입니다. The Verge는 Carbon이 SEC-bench Pro에서 GPT-6 Astra를 앞서고, 독립 인텔리전스 지수에서도 1위이며 Claude Opus 5.5가 그 뒤를 잇는다고 전합니다(The Verge).
그런데 문제가 있습니다. Carbon은 일부 사이버 방어 담당자에게만 열려 있고, Google이 가드레일에 대한 피드백을 모으며 미국 정부의 자발적 출시 전 테스트를 진행하는 동안 Fairwind Program을 통해 점차 확대됩니다. Google은 개발자와 기업에 "가능한 한 빨리" 제공하겠다고 약속했지만 날짜는 밝히지 않았습니다. 출시 가격은 입력 100만 토큰당 $2, 출력 100만 토큰당 $10이며, Google의 각주에 따르면 도입 기간이 끝나면 $4와 $20으로 오릅니다.
Anthropic과 OpenAI도 같은 주장을 하고 있습니다
Anthropic의 Frontier Red Team은 공개되지 않은 내부 연구 모델이 만든 익스플로잇 체인 5건을 공개했습니다. 대상은 Chrome, Safari, Android, Windows, Linux입니다. Chrome 체인은 결함 4개를 엮어 브라우저 샌드박스 밖에서 코드를 실행하는 데까지 이르렀습니다. Linux 체인은 로그인 없이 네트워크를 통해 root 셸을 얻었습니다. Anthropic은 모든 결함을 먼저 벤더에 보고했다고 말합니다. Chrome에서만 62개의 CVE가 할당되어 패치됐고 모두 심각도 critical 또는 high이며, 그중 13개는 샌드박스 탈출이라고 합니다(Anthropic). 공개한 이유는 이렇게 설명합니다. "이제 모델은 사람의 개입을 거의 받지 않고도 이를 수행할 수 있고, 누구나 실행해 검증할 수 있는 작동하는 익스플로잇을 만들어 증명할 수도 있습니다."
이는 주장으로 받아들이는 것이 맞고, The Hacker News도 그렇게 다뤘습니다. Apple과 Google은 특정 수정 사항에 대해 Claude와 함께 작업한 Anthropic 연구원들의 공을 인정했는데, 이 부분은 확인할 수 있습니다. 반면 각 체인에서 모델이 혼자 만든 몫이 얼마인지는 알 수 없습니다. Anthropic이 단계마다 사람이 무엇을 했는지 구분해 밝히지 않기 때문입니다. The Hacker News는 공개된 CVE 기록 중 두 건이 Anthropic의 글과는 결함을 다소 다르게 설명하고 있다는 점도 확인했습니다. 검증된 보안 전문가를 위한 접근은 Cyber Verification Program을 통해 이뤄지며, 여기에는 Claude Opus 등의 모델이 포함됩니다.
Reuters에 따르면 OpenAI의 사례에는 고백이 따라붙었습니다. 올해 초 연구용 모델이 설정 오류를 이용해 인터넷에 접속한 뒤, 회사는 가장 고도화된 모델의 학습을 중단하고 보안을 강화했으며 새 통제 장치를 갖춘 뒤에 학습을 재개했습니다. 새 방어 체계를 시험하려고 AI 에이전트 팀을 풀어 탈출을 시도하게 했고, 에이전트들은 Node.js, Bun, Envoy가 쓰는 압축 라이브러리 Brotli에서 결함을 찾았습니다. 저희가 계속 곱씹는 대목은 이것입니다. OpenAI에 따르면 근본 원인은 몇 달 전에 Brotli 소스 코드에서 이미 수정됐는데, 당시에는 아무도 그것이 취약점인 줄 몰랐고 새 버전도 나오지 않았습니다. 수정은 몇 달 전부터 존재했지만, OpenAI가 결함을 공개하기 전까지는 그것을 담은 릴리스가 없었습니다.
OpenAI가 Trail of Bits와 함께하는 Patch the Planet 프로그램의 출시 글은 사람이 계속 개입해야 하는 이유를 설명합니다. 최상위 모델은 "오탐을 대량으로 만들어 유지관리자들이 이미 감당하기 힘든 백로그를 더 키울 수 있다"고 하며, 그래서 Trail of Bits가 모든 발견 사항을 유지관리자에게 전달하기 전에 검토했다고 합니다(OpenAI). 이 프로그램은 Codex Security를 사용하며, 지금까지 19개 프로젝트에서 수백 건의 이슈를 찾아냈습니다.
발견은 싸졌습니다. 수정은 그렇지 않습니다
이 불균형은 그림 하나로 정리됩니다. 위쪽 줄의 작업은 이제 모두 기계의 속도로 돌아갑니다. 아래쪽 줄의 작업은 여전히 일정이 있는 사람이 필요합니다.

아래쪽 사람들부터 보겠습니다. TechCrunch는 오픈소스 유지관리자들이 무보수인 경우가 많아 외부 보안 검토를 감당하기 어려운 반면, 그들의 작업에 의존하는 기업은 기여하지 않는 경우가 많다고 지적합니다(TechCrunch). 공개 규칙 역시 더 느린 시대에 맞춰 설계됐습니다. Anthropic의 정책은 개발자에게 패치 기간 90일을 주고, 권고문 이상의 세부 내용을 논의하기까지 45일을 더 줍니다. PHP2Shell은 공개 4일 전에 공격 시도가 있었고, 수정 5일 후에는 공격이 확인됐습니다.
Sean O'Kane은 TechCrunch의 Equity 팟캐스트에서 "인터넷의 뼈대 수준"에서는 모든 것이 "접착제와 꿈으로 겨우 버티고 있다"고 말했습니다(TechCrunch). Wiz의 노출 관리 및 애플리케이션 보안 CTO인 Tomer Schwartz도 같은 방송에 출연해 수작업 패치로는 감당할 수 없다고 주장했습니다(TechCrunch). 저희는 앞의 말보다 뒤의 말에 더 동의합니다.
누가 이득을 보고, 누가 노출되어 있나
| 그룹 | 이유 |
|---|---|
| 대형 호스팅 업체와 클라우드 플랫폼 | 엠바고 아래에서 패치를 먼저 받습니다. TechCrunch에 따르면 Wiz는 PHP 작업을 도운 Automattic, Akamai, AWS, Cloudflare, Fastly, Imperva, Microsoft, Vercel에 감사를 표했습니다. |
| 스캐너를 쓸 수 있는 팀 | Carbon 같은 모델과 Anthropic 프로그램을 일찍 쓸 수 있으면 백로그가 우선순위가 매겨진 목록으로 바뀝니다. |
| 1인 개발자와 소규모 IT 팀 | TechCrunch는 이들이 업데이트가 더 느릴 것으로 보는데, 여유도 가장 부족합니다. |
| 어플라이언스와 오래된 스택 | 방화벽, 라우터, 스토리지 장비에는 PHP가 내장돼 있습니다. Dream이 확인한 피해 서버는 지원이 끝난 브랜치인 PHP 8.0.30을 쓰고 있었습니다. |
| 플러그인이 많은 사이트 | 보도에서 확인된 사실이 아니라 저희의 판단입니다. 플러그인마다 유지관리자가 따로 있고, 이들이 곧 수정을 내놓을지는 알 수 없습니다. |
저희 의견은 이렇습니다. 이번 소식 때문에 새 보안 제품을 살 필요는 없습니다. 이번 사례에서 피해를 입은 쪽에 부족했던 것은 제품이 아니었습니다. 지원이 끝난 PHP 브랜치를 쓰고 있었거나, 패치 일정조차 없는 벤더를 기다리고 있었거나, 권고문을 읽는 사람이 없었습니다. 가장 저렴한 방어책은 따분한 것들이고, 그중 가장 효과가 큰 것은 어떤 권고문이 내게 해당되는지 한 시간 안에 파악하는 일입니다.
사이트를 운영한다면 먼저 이렇게 하세요
저희라면 무엇보다 먼저 이 질문을 던지겠습니다. 내 사이트는 어떤 PHP 버전을 쓰고 있고, 누가 패치하는가? 소규모 사이트 운영자 대부분은 누군가에게 물어보지 않고는 답하지 못합니다. 그다음에는 아래 목록을 차례로 확인하세요.
- 호스팅 관리 패널에서 PHP 버전을 확인하거나 호스팅 업체에 문의하세요. 지원되는 브랜치는 8.5.12, 8.4.27, 8.3.36, 8.2.35에서 수정됐고, TechCrunch에 따르면 8.1 이하는 더 이상 패치를 받지 못합니다.
- WordPress의 경우 CMS 측 입장은 이것이 WordPress 결함이 아니라는 것입니다. 서버를 패치하고 호스팅 업체와 협력해야 하니, 업체에 이메일로 서면 답변을 요청하세요.
- 지금 패치할 수 없다면 가능해질 때까지 사이트를 내려 두세요. NSA의 지침이기도 하며, 대안이 서버 root 탈취라면 반박하기 어려운 조언입니다.
- 업로드 진행률 표시줄 없이 지낼 수 있다면
session.upload_progress.enabled=0으로 설정하세요. PHP는 이를 CVE-2026-109619의 완화책으로 안내했고, 아직 긴급 수정이 없는 위험도가 더 낮은 세 번째 권고 CVE-2026-115560에 대해서도 다시 안내했습니다(The Hacker News). - 패치한 뒤에는 수정 배포 최소 일주일 전부터의 로그에서 악용 흔적이 없는지 확인하세요. Amazon의 허니팟이 공개 4일 전에 시도를 기록했기 때문입니다.
- 방화벽이나 NAS처럼 내부적으로 PHP를 돌릴 수 있는 네트워크 장비를 모두 목록으로 만들고, 각 벤더에 패치 일정을 문의하세요.

호스팅이 아니라 소프트웨어를 직접 만든다면 Carbon을 기다리지 마세요. 지금 쓸 수 있는 스캐너는 AI 취약점 스캐너가 찾는 것과 놓치는 것에서 다뤘고, 최고의 AI 코드 리뷰 도구 글에서는 CodeRabbit, Snyk Code 같은 리뷰어를 비교했습니다. 첫 실행에서는 결과가 쌓여 나오니 분류(triage)에 쓸 시간을 확보하세요. 이유는 OpenAI의 프로그램이 설명해 줍니다. 선택지를 비교하려면 AI 사이버 보안 도구 ToolRank 전체 보드와 코드 리뷰 및 테스트 보드를 보세요. 이 일을 전업으로 하는 분들을 위한 내용은 보안 분석가를 위한 AI 도구에서 다룹니다.
아래에서 스스로 점수를 매겨 보세요. 5점 미만이라면 첫 한 시간은 2점짜리 항목에 쓰시길 권합니다.
저희가 지켜보는 것
세 가지입니다. 첫째, Google이 Carbon을 Fairwind 파트너 너머로 공개할지, 그리고 도입 요금이 끝나면 가격이 얼마가 될지. 둘째, Anthropic이 체인을 만든 모델의 이름을 밝히거나 출시할지. 소수의 검증된 팀만 가진 능력은 방어자와 공격자가 똑같이 쓸 수 있는 능력이 아니기 때문입니다. 셋째, 최초의 PHP2Shell 공격자가 어떻게 제때 알았는지. 아직 답이 없습니다.
다음으로 지켜볼 수정은 PHP의 세 번째 권고인 CVE-2026-115560입니다. PHP는 다음 정기 릴리스에 포함될 것이라고 밝혔습니다. 릴리스되는 날 노트를 읽고, 사이트의 버전을 다시 확인하세요.