10월 21일 PHP가 인증 없이 원격 코드 실행이 가능한 두 건의 치명적 취약점(PHP2Shell) 패치를 긴급 배포했고, 패치 전부터 실제 공격이 관측됐다. 전 세계 웹사이트 상당수와 워드프레스가 PHP 기반이라 직접·호스팅 운영자 모두 영향권에 있다. PHP 버전을 먼저 확인하고 백업·테스트·적용 순으로 올리되, 바로 못 하면 호스팅 업체에 패치 적용 여부를 물어 임시 대응하면 된다.
10월 21일, PHP 개발진이 긴급 보안 패치를 내놨다. 'PHP2Shell'로 불리는 두 건의 결함(CVE-2026-109618, CVE-2026-109619)인데, 심각도 점수가 10점 만점에 9.2다. 로그인이나 인증 없이도 외부에서 서버에 임의 코드를 실행하고 시스템을 장악할 수 있다는 뜻이다.
문제는 속도다. 보안업체 Sansec에 따르면 Cloudflare는 패치가 배포되기 전인 21일 오전에 이미 초기 공격을 보고했다. 패치 정보가 사전에 유출되면서 PHP 측은 공개일을 하루 앞당겼고, 네덜란드와 핀란드 일부 정부기관은 예방 차원에서 웹사이트 운영을 멈췄다. 흥미로운 대목은 이 결함이 10년 넘게 숨어 있었고, 보안업체가 AI 모델을 돌려 찾아냈다는 점이다.
전 세계 웹사이트의 상당수가 PHP로 돌아간다. 워드프레스도 PHP 기반이다. 남 이야기가 아닐 가능성이 높다는 의미다.
Photo by Souvik Banerjee on Unsplash
가장 먼저 할 일은 내 서버의 PHP 버전 확인이다. 방법은 환경마다 다르다.
php -v를 입력하면 버전이 바로 나온다.영향 범위는 넓다. 출처에 따라 PHP 5.4 이후 또는 PHP 5 이후라고 조금씩 다르게 보지만, 공통점은 분명하다. 지금 운영 중인 거의 모든 버전이 대상이라는 것이다. 패치가 적용된 안전 버전은 아래와 같다.
| PHP 계열 | 패치 버전 | 지원 상태 |
|---|---|---|
| 8.5 | 8.5.12 | 지원 중 |
| 8.4 | 8.4.27 | 지원 중 |
| 8.3 | 8.3.36 | 지원 중 |
| 8.2 | 8.2.35 | 지원 중 |
지원이 끝난 7.4부터 8.1까지는 소스 백포트만 제공된다. 바꿔 말하면, 오래된 버전을 쓰고 있다면 단순 업데이트가 아니라 상위 버전으로 옮기는 작업이 필요할 수 있다.
버전을 확인했다면 바로 올리고 싶겠지만, 순서를 지키는 편이 사고를 줄인다.
먼저 백업이다. 사이트 파일과 데이터베이스를 함께 받아둔다. PHP 버전이 올라가면 오래된 플러그인이나 테마가 깨질 수 있어서, 문제가 생겼을 때 되돌릴 지점이 반드시 있어야 한다.
다음은 테스트다. 가능하면 복제본이나 스테이징 환경에서 새 버전으로 먼저 돌려보고, 결제·로그인·문의 폼처럼 핵심 기능이 정상인지 확인한다. 테스트 환경이 없는 작은 사이트라면, 방문이 적은 시간대에 적용하고 곧바로 주요 페이지를 점검하는 것으로 대신할 수 있다.
적용한 뒤에는 다시 php -v나 사이트 건강 화면으로 버전이 바뀌었는지 확인한다. 워드프레스라면 플러그인과 테마도 최신으로 맞춘다.
직접 서버를 만지기 어렵거나 관리형 호스팅을 쓴다면, 업체에 다음을 구체적으로 물어보면 된다.
답을 기다리는 동안의 임시 대응도 있다. Cloudflare 같은 웹 방화벽(WAF)을 앞단에 두면 알려진 공격 패턴을 일부 걸러낼 수 있다. 실제로 InMotion Hosting은 관리 서버 전체에서 공격이 악용하는 PHP 설정을 선제적으로 꺼두었다고 밝혔다. 다만 이런 조치는 시간을 버는 수단일 뿐, 패치를 대신하지는 못한다.
여기서 판단 기준은 단순하다. 관리형 호스팅을 쓰고 업체가 이미 패치했다면 당장 할 일은 버전 확인뿐이다. 반면 서버를 직접 돌리거나 지원이 끝난 7.x대를 쓰고 있다면, 이번만큼은 미루지 않는 쪽이 낫다. 공개 전부터 실제 공격이 관측된 사안이기 때문이다. CVE 번호와 정확한 영향 범위는 PHP 공식 보안 공지에서 한 번 더 확인하는 것을 권한다.