PHP2Shell은 널리 쓰이는 소프트웨어를 안전하게 유지하려면 얼마나 많은 보안 검토와 유지보수 작업이 필요한지 보여준 경고였습니다. 2026년 10월, PHP에서 치명적 취약점 두 건이 발견돼 긴급 패치가 배포됐습니다. PHP는 웹사이트 최대 70%에서 사용되는 것으로 보도됐습니다.
11 이번 사태는 웹의 상당 부분을 뒷받침하는 오픈소스 프로젝트가 취약점을 검토하고 수정하며 소프트웨어를 꾸준히 관리할 역량을 갖추고 있는지에 대한 질문도 부각했습니다.
22
PHP2Shell에서 무슨 일이 있었나
CVE-2026-109618과 CVE-2026-109619는 인증을 거치지 않은 공격자가 영향을 받는 PHP 시스템에서 원격으로 코드를 실행할 수 있게 하는 취약점입니다. 보도에 따르면 두 취약점 모두 심각도 점수가 9.2였습니다.
9
17 이는 PHP 런타임 자체의 결함이며, PHP를 쓰는 모든 애플리케이션이 안전하지 않다는 뜻은 아닙니다.
PHP는 2026년 10월 21일 수정 버전 PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35를 공개했습니다.
18
27 Calif의 연구 설명에 따르면 취약점 발견에는 Calif, OpenAI, Wiz가 참여했습니다.
15 공개 조율 과정이 어긋났다는 보도도 나왔습니다. PHP 관리자는 Chainguard가 예정된 공개 시점보다 먼저 정보를 공개했다고 비판했고, 이후 프로젝트는 패치를 앞당겨 배포했습니다.
35
37
PHP가 널리 사용된다는 점은 왜 대응이 시급했는지 설명해 줍니다. 보도에서는 PHP가 웹사이트 최대 70%에서 사용된다고 전했지만, 이는 보급률 추정치이지 취약하거나 침해된 사이트 수를 뜻하지 않습니다.
11 또한 제공된 자료만으로는 전자프런티어재단(EFF)이 10월 23일 기준 취약 시스템이 3,300만 대 이상이라고 추산했다는 주장을 확인할 수 없습니다.
공격 시도와 실제 침해는 다릅니다
아마존은 공개 패치 배포 전인 10월 17일 취약점 악용 시도를 포착한 것으로 보도됐으며, 이후 광범위한 악용 시도도 언급했습니다.
34 다른 보도에서는 시도 횟수가 수백만 건에 이른다고 전했습니다.
6 한편 취약점 대응을 위해 일본 재무부 및 로테르담 항만과 관련된 서비스를 비롯해 일부 조직이 예방 차원에서 서비스를 중단했다는 보도도 있었습니다.
12
그러나 악용 시도가 있었다는 사실만으로 침해가 확인되는 것은 아닙니다. BBC는 10월 22일 성공적인 악용 사례가 보고되지 않았다고 전했고, Security Affairs도 10월 23일 기준 성공적인 악용 여부가 확인되지 않았다고 보도했습니다.
9
31 이는 보도 시점이나 ‘악용’이라는 표현의 기준이 서로 달랐기 때문일 수 있습니다. 여기서 확인되는 것은 공격 시도에 대한 우려이지, 수백만 시스템이 실제로 침해됐다는 결론은 아닙니다.
오픈소스 보안의 교훈: 발견 이후의 작업도 중요하다
PHP2Shell은 오래된 핵심 소프트웨어에서도 결함을 찾아내는 일이 중요하다는 점을 보여줍니다. 하지만 발견은 첫 단계일 뿐입니다. 수정 사항을 검토하고 배포해야 하며, 운영자는 영향을 받는 시스템을 찾아 업데이트를 적용해야 합니다. Sovereign Tech는 이번 사태가 핵심 오픈소스 보안 분야의 투자 부족을 드러냈다고 지적했습니다.
22
따라서 핵심 과제는 단순히 발견된 버그의 수가 아니라 이를 처리할 보안 역량입니다. 취약점이 더 많이 발견되면 관리자와 방어 담당자의 업무가 늘어날 수 있지만, 보고된 취약점이 증가했다는 사실만으로 소프트웨어 보안이 악화되고 있다거나 AI가 증가를 초래했다고 단정할 수는 없습니다. 결함을 찾는 일만으로는 결과를 검증하고, 공개 시점을 조율하고, 신뢰할 수 있는 수정판을 배포·설치할 사람과 역량이 생기지 않습니다.
신중하게 내릴 수 있는 결론은 PHP가 본질적으로 안전하지 않다는 것이 아닙니다. 웹의 큰 부분에서 쓰이는 소프트웨어에는 지속적인 보안 검토와 유지보수가 필요하며, 취약점 발견이 빨라질수록 그 작업의 중요성도 커진다는 점입니다.
11
22
PHP 운영자가 취할 조치
PHP를 운영하는 조직은 다음 순서로 대응할 수 있습니다.
- 외부에 공개된 시스템을 파악합니다. PHP를 사용하는 서비스를 확인하고, 각 시스템의 실제 런타임 버전을 기록합니다.
- 해당 버전에 맞는 수정판을 적용합니다. 사용 중인 PHP 브랜치에 맞는 버전으로 업데이트하거나, 런타임이 공급업체를 통해 배포·관리된다면 검증된 공급업체 지침을 따릅니다. PHP는 10월 21일 수정 버전을 공개했습니다.
18
27
- 서비스가 업데이트된 런타임을 사용하는지 확인합니다. 업데이트 후 PHP 워커를 재시작하라는 운영 지침도 있습니다.
32
- 침해 여부를 정확하게 표현합니다. 취약한 시스템, 공격 시도, 확인된 침해, 검증되지 않은 주장을 구분합니다. 예방적 서비스 중단이나 공격 트래픽만으로 시스템 침해가 확인되는 것은 아닙니다.
PHP2Shell이 남긴 교훈은 보안의 전 과정이 중요하다는 것입니다. 취약점 발견부터 검토, 공개 조율, 패치 배포, 실제 적용까지 어느 한 단계도 빠질 수 없습니다. 이 과정을 뒷받침하는 유지보수에 투자하는 일은 핵심 오픈소스 인프라를 보호하는 데 필요한 요소이지, 선택적 추가 비용이 아닙니다.
22