원문 캡처 · blog.cloudflare.com
원문 캡처 · blog.cloudflare.com

클라우드플레어는 PHP 5.4 이상 웹 서버에 영향을 줄 수 있는 취약점 php2shell(CVE-2026-109618·CVE-2026-109619)에 대응해 웹 애플리케이션 방화벽(WAF) 규칙을 배포했다. WAF를 사용하는 무료·유료 고객은 10월 21일 03:02 UTC부터 기본 보호를 받으며, PHP 자체를 업데이트하는 조치도 필요하다.

Calif.io, Wiz, 오픈AI, Quarkslab은 PHP의 보안 공지와 함께 두 취약점을 공개했다. 특수하게 만든 HTTP 요청으로 서비스 거부, 원격 코드 실행, 데이터 노출이 발생할 수 있다. 클라우드플레어는 PHP Foundation, 오픈AI, Wiz 등과 대응을 조율했으며, 공개 약 9시간 전에 WAF 방어를 배포했다고 밝혔다. 공식 공개일 전 취약점이 유출되고 고객을 겨냥한 공격 트래픽이 관찰된 뒤에는 공격 페이로드의 변형과 규칙 일치량을 살펴 방어를 보완했다.

요청 내용만으로는 공격과 정상 트래픽을 항상 구별하기 어려워, 클라우드플레어는 같은 HTTP 거래의 요청과 응답을 함께 분석하는 ‘전체 거래 탐지’ 기능을 개발했다. 이 기능은 원본 서버의 응답에서 공격 성공 여부를 가려내는 신호를 활용하며, 일치하는 응답이 요청자에게 전달되기 전에 차단할 수 있다. php2shell 규칙은 이 기능을 사용하는 첫 관리형 탐지다. 자세한 내용은 전체 거래 탐지 소개에서 확인할 수 있다.

무료 요금제에는 Cloudflare Managed Free Ruleset(규칙 세트 ID 77454fe2d30c4220b5701f6fdfb893ba)으로 보호가 배포돼 별도 조치가 필요 없다. 유료 요금제에는 Cloudflare Managed Ruleset(규칙 세트 ID efb7b8c949ac4650a09736fc376e9aee)이 적용된다. Professional, Business, Enterprise 고객은 규칙 세트가 차단 모드로 배포됐는지 확인해야 한다. 배포 방법과 규칙 동작 변경 안내를 참고할 수 있다.

클라우드플레어가 공개한 규칙 ID는 다음과 같다.

적용 범위규칙 ID
무료 요금제14e315666e8e344cdb64119a3b5ccf32f, 200c10e6cc4da4bd08722adeebcd95984, 348ddf592361e4fdb97a8a85982dab691, 43556683d512a47f2937899c524b1a4c6, 5da07c85852e34625bb478496302ede46, 619373a83abb840e18ab3ce5a7975ce1b, 707f0b6ddaabf40b1b2042dade8d613fa
유료 요금제1c1d409ad838f47f59446f21cc438d5dd, 2f9a45927414245e3a64bb12d0a0c2f64, 3771c654ae1154d4daa72f4e1545d163c, 4217005865f0145f392300bac212afcc9, 538efdb17ea594501bb55a1d71867b12e, 64148ae686fdb4d01be673fab9d9c073d, 71389aa259617437392ce149c48143645
모든 요금제의 Managed Response Firewall Defaultafffe22785674c80a31875c848d2242a

차단 요청은 대시보드의 Security > Security Analytics > Events에서 확인하고, 위 규칙 ID로 필터링할 수 있다. 애플리케이션에 맞게 보호 범위를 조정하려면 관리형 규칙 세트 범위 설정 안내를 참고하면 된다.

두 취약점은 PHP 런타임의 메모리 처리 오류에서 비롯된다. CVE-2026-109618은 메모리 부족으로 처리가 중단된 뒤 초기화가 끝나지 않은 데이터를 정리 과정에서 사용할 수 있는 문제다. CVE-2026-109619는 치명적 오류로 요청이 중단된 뒤 해제된 메모리를 가리키는 참조가 남아, 같은 PHP 프로세스가 다음 요청을 처리할 때 유효하지 않은 메모리에 접근할 수 있는 문제다.

웹사이트 코드나 플러그인만 업데이트해서는 해결되지 않는다. 관리자는 애플리케이션을 실행하는 PHP를 업데이트해야 하며, 호스팅 업체가 PHP를 관리한다면 보안 업데이트를 요청해야 한다. PHP 보안 공지에 따라 패치를 적용하면서 WAF 보호도 유지해야 한다. 불필요한 업로드를 제한하고 업로드 크기를 줄이면 노출을 완화할 수 있지만, PHP 업데이트를 대신하지는 않는다. 클라우드플레어는 새로운 공격 기법이 나타나면 규칙을 계속 갱신할 예정이며, 변경 사항은 변경 기록에서 확인할 수 있다.