2026년 10월 22일 게시. PHP Foundation, CISA, Rapid7의 공지를 바탕으로 작성했으며, 상황이 바뀌면 업데이트합니다.

요약: 지금 바로 PHP를 업데이트하세요. 그것이 해결책이며, 이 글의 어떤 내용도 이를 대신할 수 없습니다. 정적화해도 WordPress 서버에서 PHP가 사라지지는 않습니다. 다만 일반 방문자가 PHP에 닿지 않게 되므로, PHP를 실행하는 서버는 최소한으로 줄이고 숨기고 잠시 꺼 둘 수도 있으며, 그래도 사이트는 멈추지 않습니다.

무슨 일이 있었나

  • CVE-2026-109618과 CVE-2026-109619 두 건(별칭 「php2shell」)은 조건이 맞으면 로그인하지 않은 공격자가 PHP를 실행하는 서버에서 코드를 실행할 수 있는 취약점입니다. CVSS 점수는 둘 다 9.2입니다.
  • CVE-2026-109618은 요청이 잘못된 순간에 메모리 한도에 도달하면 메모리를 손상시킵니다. Apache + mod_php에서는 애플리케이션 코드가 실행되기도 전에 발동할 수 있어 어떤 CMS나 플러그인을 쓰는지와 상관이 없고, 기본 설정에서 완전한 코드 실행이 시연됐습니다. PHP-FPM에서도 애플리케이션 코드 경로를 통한 발동이 확인됐습니다.
  • CVE-2026-109619는 이전 요청의 상태가 남아 생기는 use-after-free이며, Apache + mod_php에서 실제 애플리케이션을 대상으로 코드 실행이 시연됐습니다.
  • 수정 버전은 PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35로 2026년 10월 21일 공개됐습니다. CISA는 웹 요청을 처리하는 모든 PHP가 영향을 받는다며, 인터넷에 노출된 시스템부터 즉시 패치하라고 권고했습니다.
  • 악용 현황: 공개 시점에는 PHP 보안팀도 CISA도 실제로 동작하는 공격을 확인하지 못했습니다. 하지만 세부 내용이 이틀 먼저 유출되고 개념 증명 영상도 퍼져, 연구자들은 공격 코드가 곧 공개될 것으로 보고 있습니다.

먼저 패치하세요

사용 중인 PHP업데이트할 버전참고
8.58.5.12 이상
8.48.4.27 이상
8.38.3.36 이상
8.28.2.35 이상
8.1 이하지원되는 버전으로 업그레이드수정 없음. CISA는 업그레이드 전까지 오프라인 전환을 권고

WordPress에서는 도구 → 사이트 건강 → 정보 → 서버 → PHP 버전에서 확인할 수 있습니다. 관리형이나 공유 호스팅이라면 업데이트가 적용됐는지 호스팅 업체에 확인하세요. 공개 전에 미리 패치한 곳도 많습니다. 직접 관리하는 서버라면 PHP 패키지를 업데이트한 뒤 PHP-FPM이나 Apache를 재시작하세요. PHP가 도는 모든 사이트가 대상입니다. 스테이징 사이트, 오래된 사이트, phpMyAdmin 같은 도구도 포함됩니다.

WordPress 사이트가 특히 노출되는 이유

일반적인 WordPress 사이트는 페이지가 열릴 때마다 PHP를 실행합니다. 페이지를 요청하는 방문자, 봇, 스캐너 모두가 PHP에 닿습니다. 인터넷 전체에서 취약한 서버를 대량으로 스캔하는 데는 비용이 거의 들지 않고, 애플리케이션 코드보다 먼저 발동하는 취약점이라면 플러그인을 아무리 잘 관리해도 소용이 없습니다. 여러분의 PHP에 요청을 보낼 수 있는 사람이라면 누구나 공격을 시도할 수 있습니다.

정적화로 달라지는 것

일반 WordPressCDN의 정적 버전
페이지를 열 때 PHP 실행매번전혀 없음 — 페이지는 그냥 파일
PHP에 닿는 사람페이지를 여는 누구나허용한 만큼만: 관리 화면의 나, 그리고 사용 중인 실시간 기능
WordPress의 위치공개 도메인별도 주소에 두고 Cloudflare나 나만 접속하도록 제한 가능
PHP를 내려야 할 때사이트도 멈춤방문자는 계속 페이지를 봄. 편집과 실시간 기능만 일시 중지

마지막 줄은 지금 특히 중요합니다. CISA는 바로 패치할 수 없는 시스템은 오프라인으로 돌리라고 권고합니다. 정적 버전이 있으면 업데이트하는 동안 WordPress를 멈추거나 방화벽에서 서버를 막아도, 방문자는 CDN에서 계속 사이트를 읽을 수 있습니다.

정적 프런트엔드에서 요청이 닿는 곳. 방문자는 Cloudflare에서 정적 HTML을 받습니다 — PHP는 실행되지 않습니다. 공개 사이트를 노린 공격은 그냥 파일에 부딪힐 뿐: 실행할 것이 없습니다. 관리 화면과 실시간 기능은 WordPress에 닿기 전에 잠금(Cloudflare Access, Cloudflare에만 열린 오리진)을 먼저 통과합니다. 그 잠금 뒤에서 WordPress는 여전히 PHP로 돌아갑니다 — 업데이트를 꼭 유지하세요. Cloudflare HTMLHTMLHTML HTMLHTML 방문자 나 공격 WordPress PHP · wp-admin
방문자는 Cloudflare에서 정적 HTML을 받습니다 — PHP는 실행되지 않습니다. 공개 사이트를 노린 공격은 그냥 파일에 부딪힐 뿐: 실행할 것이 없습니다. 관리 화면과 실시간 기능은 WordPress에 닿기 전에 잠금(Cloudflare Access, Cloudflare에만 열린 오리진)을 먼저 통과합니다. 그 잠금 뒤에서 WordPress는 여전히 PHP로 돌아갑니다 — 업데이트를 꼭 유지하세요.

달라지지 않는 것

  • WordPress는 여전히 PHP로 돌아가므로 이번 업데이트가 필요합니다. 정적화는 다층 방어일 뿐 패치가 아닙니다.
  • 실시간 기능은 WordPress에 닿습니다. 정적 버전에서 댓글, 검색, 폼, WooCommerce 가격을 WordPress REST API로 보낸다면 그 요청은 PHP를 실행합니다. 관리 화면이 공개 도메인에서 열린다면 마찬가지입니다.
  • 숨긴 서버는 그것을 가리키는 단서가 하나도 없을 때만 숨겨진 것입니다. 오래된 DNS 레코드, 메일 헤더의 서버 IP, 잊힌 서브도메인으로 위치가 드러날 수 있습니다.

이번 주에 해 둘 일

  1. PHP 업데이트: PHP가 도는 모든 서버에서 하고, 사이트 건강에서 버전을 확인하세요.
  2. 관리 화면 앞에 로그인 관문 두기: 예를 들어 Cloudflare Access(소규모 팀은 무료)로 wp-admin을 나만 열 수 있게 합니다.
  3. 오리진에는 Cloudflare만 닿게 하기: 서버 방화벽에서 Cloudflare IP 대역만 허용하고 나머지는 막거나, Cloudflare Tunnel을 씁니다.
  4. WAF 켜기: 패치 전까지 어느 정도 보호가 될 수 있다고 CISA는 설명합니다.
  5. 이상 징후 감시: PHP 프로세스가 셸을 실행하거나 파일을 내려받는지 살펴보세요. CISA가 권하는 점검 항목입니다.
  6. 방문자에게는 정적 버전 제공: 공개 사이트가 PHP에 전혀 의존하지 않게 됩니다.

Pinery Static의 역할

Pinery Static은 WordPress 사이트를 순수 HTML로 내보내 Cloudflare Pages에 배포합니다. 공개 사이트는 전 세계 CDN의 파일이 되고, WordPress는 콘텐츠를 편집하는 곳이 됩니다. 무료 버전으로 내보내기와 배포를 모두 할 수 있고, Pro는 WordPress REST API를 통해 댓글, 검색, 폼, WooCommerce 가격을 계속 작동시키며, 동일 도메인 전환 기능으로 지금 도메인 그대로 정적 사이트를 제공하면서 관리 화면도 쓸 수 있습니다. 데모 쇼핑몰에서 정적 버전은 0.09초, WordPress 원래 사이트는 1.6초 만에 로딩됐습니다(27개 지점 중앙값). 측정 결과 보기. 하지만 PHP 업데이트가 먼저입니다.

자주 묻는 질문

내 WordPress 사이트도 영향을 받나요?

PHP 8.2~8.5이면서 수정 버전보다 낮다면, 업데이트하기 전까지는 영향을 받는다고 보세요. 첫 번째 취약점은 WordPress가 실행되기 전에 발동할 수 있어 Apache + mod_php 사이트가 가장 위험합니다.

정적화하면 PHP 업데이트가 필요 없나요?

아닙니다. WordPress 서버는 여전히 PHP로 돌아가므로 업데이트해야 합니다. 정적화는 서버에 닿는 사람을 줄이고 안전하게 오프라인으로 돌릴 수 있게 해 주지만, 패치는 아닙니다.

호스팅 업체가 PHP를 관리해 줍니다. 제가 할 일이 있나요?

도구 → 사이트 건강 → 정보 → 서버에서 PHP 버전을 확인하거나 호스팅 업체에 문의하세요. 빠르게 패치한 업체가 많지만 꼭 확인하고, 다른 곳에 있는 사이트나 스테이징 사이트도 잊지 마세요.

정적 사이트에서도 댓글과 폼을 쓸 수 있나요?

네, WordPress REST API로 보내는 방식입니다(Pinery Static Pro가 이렇게 합니다). 이 요청은 PHP에 닿으므로 방문자가 정적 버전을 보더라도 WordPress는 최신 상태로 보호해야 합니다.

오늘 업데이트할 수 없다면 임시 대책이 있나요?

CISA가 언급한 임시 대책은 두 가지뿐입니다. 어느 정도 보호가 될 수 있는 WAF와, 패치하지 않은 PHP 시스템을 오프라인으로 돌리는 것입니다. 정적 버전이 있으면 두 번째 방법을 써도 독자에게는 사이트가 멈추지 않습니다.

출처