공유(レンタル) 호스팅 서버에서 WordPress를 운영하다가 'PHP에 긴급 수준의 취약점'이라는 뉴스를 접했지만, 무엇을 해야 할지 모르는 분들을 위한 글입니다.
먼저 결론부터 말씀드립니다.
- 공유 호스팅 서버라면,
PHP 자체의 수정은 서버 회사에서 진행합니다. 이용자가 PHP를 직접 빌드하여 다시 할 필요는 없습니다. - 이용자가 해야 하는 것은,
자신의 사이트에 설정된 PHP 버전이, 수정이 적용되는 버전인지 확인하는 것입니다. - 8.1 이하 버전을 사용하고 있다면,
8.2 이상으로 전환합니다 (PHP 공식 수정판은 8.2~8.5에만 나오고 있습니다).
(이는 2026년 10월 22일 아침 시점의 정보입니다. 서버 회사의 대응은 매일 달라지므로, 최종적으로는 각 사의 공지를 확인해 주세요.)
2026년 10월 21일, PHP 개발사에서 심각도가 높은 취약점 2건을 수정한 수정판을 공개했습니다. 통칭 'php2shell'이라고 불립니다.
| 항목 | 내용 |
|---|
| 식별 번호 | CVE-2026-109618/CVE-2026-109619 |
| ... | |
| PHP 공식 공지에는, mod_php 환경에서 로그인하지 않은 단 한 번의 요청만으로, 앱 코드가 실행되기 전에 공격이 성립할 수 있는 예시가 제시되어 있다고 합니다. 이는 WordPress 내에서 무언가를 설정하여 막을 수 있는 종류의 문제가 아닙니다. | |
공식적으로는 설정을 변경하여 위험을 줄이는 방법도 안내하고 있습니다. 다만 '완벽한 대책은 없으며, 업데이트만이 안전한 선택'이라고 명확히 밝히고 있습니다.
확인해야 할 곳은 두 군데가 있습니다.
- 서버 회사 관리 화면: 많은 회사에서 도메인별로 PHP 버전을 선택하는 화면이 있습니다 (예: Xserver의 'PHP Ver. 전환'). - WordPress 관리 화면: '도구' → '사이트 건강' → '정보' → '서버'에 해당 사이트에서 실제로 구동되고 있는 PHP 버전이 표시됩니다.
여러 도메인을 가지고 있다면, 도메인별로 확인해야 합니다. 오래된 사이트만 구형 버전을 그대로 유지하고 있는 경우가 많습니다.
수정판이 나온 것은 8.2~8.5뿐입니다. 참고로 8.2도 2026년 12월 31일부로 공식 지원이 종료되므로, 전환한다면 8.3 이상이 안전합니다.
버전 전환 전후에 해야 할 일은 두 가지입니다.
- 전: 백업을 받습니다. 오래된 테마나 플러그인이 새로운 PHP에서 작동하지 않을 수 있습니다. - 후: 메인 페이지, 고정 페이지, 글, 문의 양식 등 종류가 다른 몇 장의 페이지를 열어 표시가 깨지지 않았는지 확인합니다.
'어떤 버전으로 수정이 적용되었는지', '오래된 버전에도 자체적으로 수정이 적용되는지'는 회사마다 다릅니다. 예를 들어 Xserver는 21일 16시부터 관리 화면 등을 예방적으로 일시 중단하고 (부정 접근에 의한 것이 아니라고 설명), 22일 6시 45분 시점에 다음과 같이 안내했습니다.
- PHP 8.2~8.5: 대상 모든 서버에 수정 적용 완료 - 공식 수정판이 없는 구형 버전: 자체적으로 수정을 만들어 확인이 끝난 순서대로 적용하고 있습니다.
구형 버전에도 조치가 진행되고 있는 회사가 있습니다. 다만, 언제 도착할지는 버전에 따라 다르므로, 전환 가능하다면 8.3 이상으로 전환하는 것이 확실합니다.
여기는 제가 제 서버를 확인하다가 실제로 걸릴 뻔했던 경험담입니다.
SSH로 서버에 접속하여 php -v을 입력해 보니,
PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08)
8.0은 공식 수정판이 나오지 않는 버전입니다. 순간 '사이트가 위험하다'고 생각했습니다.
하지만, 이것은 SSH에서 사용되는 PHP(CLI)의 기본 버전일 뿐입니다. 사이트 표시용으로 쓰이는 PHP는 관리 화면에서 도메인별로 선택한 것이며, 따로 결정됩니다. CLI가 8.0이라도, 사이트는 8.3으로 작동하는 경우가 있습니다. 반대로, CLI가 최신이어도 사이트는 구형 그대로일 수도 있습니다.
SSH 결과만으로 '위험하다', '안전하다'를 판단하지 마세요. 사이트 버전은 관리 화면이나 WordPress의 사이트 건강에서 확인해야 합니다.
SSH 사용이 가능하다면, 서버에 배치된 PHP 목록과 각각의 빌드 날짜를 확인함으로써 수정이 적용되었는지 단서를 얻을 수 있습니다. 제가 사용하는 공유 서버에서는 각 버전이 /opt/php-<버전>에 나열되어 있었습니다.
수정된 버전이 빌드되었는지 확인하기 (읽기 전용)
/opt/php-8.3.36/bin/php -v
제가 10월 22일 아침에 봤을 때는 이랬습니다.
| 버전 | 보인 내용 |
|---|
| 8.2.35/8.3.36/8.4.27/8.5.12 | 10월 21일 22시경에 빌드된 것이 들어 있었다 |
| 8.0/8.1 | 마지막 업데이트가 4월과 7월에 머물러 있다 |
이것은 제가 본 시점, 제 서버의 상태입니다. 위와 같이 오래된 버전에도 나중에 자체적인 수정 사항이 적용될 수 있으니, 최종적으로는 공지사항을 통해 확인해 주십시오.
워드프레스(WordPress)를 유지보수 모드로 설정하고 지켜보는 방안도 보였습니다. 하지만 이번 문제는 PHP 본체에 있으며, 워드프레스 코드가 작동하기 전에 공격이 성립하는 사례가 제시되었습니다. 유지보수 모드는 워드프레스 내부의 메커니즘이기 때문에 방어 수단이 되지 못합니다.
꼭 막고 싶다면 서버 측(웹 서버 설정이나 접근 제한)에서 막아야 합니다. 다만, 공유 서버 이용자 입장에서 핵심은 수정 사항이 반영된 버전으로 전환하는 것입니다.
저는 엔지니어가 아니라 사무직입니다. 이번에는 Claude Code (AI)에게 **'읽기만 하고, 아무것도 변경하지 않는다'**고 결정하고 SSH로 서버를 확인하게 했습니다.
- 뉴스 및 PHP 공식 공지를 통해 수정된 버전 번호를 확인한다.
- 서버에서
php -v 를 실행하여 /opt/php-* 각 버전의 빌드 날짜를 읽는다. → 사이트의 버전은 관리자 화면에서만 알 수 있다고 구분한다. → 관리자 화면을 보는 것은 사람이 한다.
뉴스 기사를 읽고 나서 '내가 무엇을 봐야 할지'가 파악될 때까지 몇 분이 걸렸습니다. AI가 한 일은 조사와 구분에 불과했고, 전환할지 여부는 사람이 결정합니다.
| 서버 회사에서 하는 것 | PHP 본체의 수정 (수정된 버전의 빌드 및 교체) |
| 이용자가 하는 것 | 사이트에 설정된 PHP 버전을 확인한다. 8.1 이하인 경우 8.2 이상(가능하다면 8.3 이상)으로 전환한다. |
| 판단에 사용하지 않을 것 | SSH의 php -v (사이트 버전과 다를 수 있음) / 유지보수 모드 (방어 수단이 아님) |
사이트 구조는 아무것도 바뀌지 않습니다. 변하는 것은 PHP 버전이 '수정 사항이 반영된 버전'으로 바뀐다는 것뿐입니다.