PHP 긴급 보안 패치(PHP2Shell),
우리 홈페이지는 괜찮을까?
2026년 10월 21일, PHP 공식 개발팀이 로그인 없이 서버에서 명령을 실행할 수 있는 치명적 취약점 2건을 고친 보안 업데이트를 내놓았습니다. PHP로 만든 홈페이지라면 지금 쓰는 버전부터 확인해야 합니다. 무엇이 위험한지, 무엇을 해야 하는지 공식 발표를 바탕으로 정리했습니다.
한눈에 보는 답
2026년 10월 21일 공개된 PHP 취약점(CVE-2026-109618, CVE-2026-109619, 일명 PHP2Shell)은 로그인 없이 원격으로 서버 명령을 실행할 수 있는 최고 위험도 결함입니다. 웹 요청을 처리하는 거의 모든 PHP 환경이 대상이며, PHP 측은 완전한 우회책이 없고 업데이트만이 안전하다고 밝혔습니다. PHP 8.5.12 · 8.4.27 · 8.3.36 · 8.2.35 이상으로 올리고, 8.1 이하라면 지원 중인 버전으로 옮기세요.
- CVSS 9.2 (치명적)
- 로그인 없이 원격 실행
- PHP 8.5.12 · 8.4.27 · 8.3.36 · 8.2.35
- 8.1 이하 공식 지원 종료
- 업데이트가 유일한 해결책
무슨 일이 있었나
PHP 개발팀은 10월 20일 "치명적 보안 업데이트를 예고"한 뒤, 10월 21일(한국 시간 밤 11시) PHP 8.5.12 · 8.4.27 · 8.3.36 · 8.2.35를 동시에 배포했습니다. 이번에 고친 취약점은 2건이며, 둘 다 CVSS v4.0 기준 9.2점으로 평가됐습니다.
첫 번째(CVE-2026-109618)는 메모리가 부족할 때 PHP가 요청 정보를 반쯤만 준비한 상태로 멈추고, 이를 정상 데이터로 착각해 정리하는 과정에서 생깁니다. 두 번째(CVE-2026-109619)는 이미 해제된 메모리를 가리키는 정보가 남아, 같은 작업 프로세스가 다음 요청을 처리할 때 이를 다시 쓰는 문제입니다. 두 경우 모두 공격자가 계정이나 비밀번호 없이 서버에서 명령을 실행할 수 있습니다.
대상은 웹 요청을 처리하는 거의 모든 PHP 설치 환경입니다. PHP-FPM, Apache mod_php, php-cgi, FrankenPHP, LiteSpeed가 모두 포함됩니다. 특히 Apache mod_php는 홈페이지 프로그램이 실행되기도 전에 요청 하나로 공격이 가능하다는 것이 시연돼 가장 위험한 환경으로 꼽혔습니다.
미국 사이버보안청(CISA)은 즉시 패치하라고 권고했고, Cloudflare는 패치가 나오기 전부터 두 취약점을 노린 초기 공격을 관측했다고 밝혔습니다. 홈페이지 위·변조나 고객 정보 유출로 이어질 수 있는 만큼, 미루지 말고 확인해야 합니다.
버전별 상태와 할 일
지금 쓰는 PHP 버전에 따라 할 일이 다릅니다. 앞자리 두 숫자(예: 8.3)로 내 버전이 어디에 해당하는지 확인하세요.
| 사용 버전 | 패치 버전 | 지원 상태 | 해야 할 일 |
|---|---|---|---|
| PHP 8.5 | 8.5.12 | 정식 지원 | 8.5.12 이상으로 즉시 업데이트 |
| PHP 8.4 | 8.4.27 | 정식 지원 | 8.4.27 이상으로 즉시 업데이트 |
| PHP 8.3 | 8.3.36 | 보안 수정만 지원 | 8.3.36 이상으로 즉시 업데이트 |
| PHP 8.2 | 8.2.35 | 2026년 12월 31일 지원 종료 | 8.2.35로 업데이트 후, 연내 8.3 이상 이전 계획 |
| PHP 8.1 이하 (7.x · 5.x 포함) | 공식 배포 없음 | 지원 종료 | 지원 중인 버전(8.3 이상 권장)으로 이전. 당장 어렵다면 호스팅사·서버 업체에 보안 패치 제공 여부 확인 |
※ PHP 개발팀은 7.4 · 8.0 · 8.1용 최소한의 소스 수정본을 따로 공개했지만, 직접 빌드하는 서버를 위한 것으로 정식 지원은 아닙니다. 리눅스 배포판·장기지원(LTS) 업체는 사전에 패치를 받았으므로 해당 업체의 업데이트를 확인하세요.
지금 해야 할 일 6가지
홈페이지 담당자가 직접 서버를 다루지 않더라도, 아래 순서대로 호스팅사나 제작사에 확인하면 됩니다.
-
01
지금 쓰는 PHP 버전부터 확인하세요
버전을 알아야 업데이트 대상인지, 버전을 올려야 하는지 판단할 수 있습니다. 많은 서버가 보안을 위해 버전 정보를 밖으로 드러내지 않기 때문에, 홈페이지 주소만으로는 확인되지 않는 경우가 많습니다.
- 확인 방법
- 호스팅 관리 화면(웹호스팅 관리페이지·cPanel 등)의 PHP 버전 항목을 봅니다.
- 워드프레스라면 관리자 > 도구 > 사이트 건강 > 정보 > 서버에서 PHP 버전을 볼 수 있습니다.
- 서버에 접속할 수 있다면 php -v 명령으로 확인합니다.
물어볼 질문 : "저희 홈페이지 서버의 PHP 정확한 버전(예: 8.3.xx)과 실행 방식(FPM·mod_php 등)을 알려 주세요."
-
02
패치 버전으로 바로 업데이트하세요
PHP 측은 이번 취약점에 대해 "완전한 완화책은 없으며 업데이트만이 안전한 선택"이라고 밝혔습니다. 8.2~8.5를 쓰고 있다면 같은 계열의 패치 버전으로 올리는 것이므로 홈페이지 프로그램을 고칠 일은 대부분 없습니다.
- 확인 방법
- 업데이트 후 버전이 8.5.12 · 8.4.27 · 8.3.36 · 8.2.35 이상인지 다시 확인합니다.
- PHP-FPM 등 작업 프로세스를 모두 재시작했는지 확인합니다.
물어볼 질문 : "이번 PHP 보안 패치(CVE-2026-109618, 109619)는 언제 적용되나요? 적용 후 버전을 알려 주세요."
-
03
8.1 이하라면 버전 이전을 계획하세요
PHP 8.1 이하는 PHP 개발팀이 더 이상 업데이트를 내지 않습니다. 앞으로 나올 취약점도 막을 수 없다는 뜻입니다. 다만 버전을 크게 올리면 오래된 프로그램 코드가 동작하지 않을 수 있어, 미리 호환성을 점검해야 합니다.
- 확인 방법
- 개발 서버(복사본)에서 새 버전으로 먼저 실행해 오류가 나는 화면을 찾습니다.
- 게시판·회원·결제·문의 폼처럼 핵심 기능을 하나씩 확인합니다.
- 코드 수정 범위가 크다면 리뉴얼과 함께 검토하는 것도 방법입니다.
물어볼 질문 : "PHP 8.3 이상으로 올리면 저희 홈페이지에서 수정해야 할 부분이 얼마나 되나요?"
-
04
바로 못 올린다면 임시 조치라도 해 두세요
PHP 공식 공지는 업데이트 전까지 공격 경로를 줄이는 서버 설정을 안내했습니다. 다만 "특정 경로의 노출을 줄일 뿐 안전하게 만들지는 않는다"고 분명히 밝혔으므로, 업데이트까지 시간을 버는 용도로만 써야 합니다.
- 확인 방법
- php.ini 또는 FPM 설정에서 session.upload_progress.enabled=0 으로 바꾸고 모든 작업 프로세스를 재시작합니다(ini_set()·.user.ini 로는 안 됩니다).
- post_max_size 를 업로드가 없으면 8M, 있으면 32M로 낮추고 upload_max_filesize 는 그보다 작게 둡니다.
- 웹 방화벽(WAF)을 쓰고 있다면 이번 취약점용 차단 규칙이 적용됐는지 확인합니다.
물어볼 질문 : "업데이트 전까지 서버에 어떤 임시 조치를 적용했나요?"
-
05
업데이트 뒤 이상 징후가 없는지 살펴보세요
패치 전부터 공격 시도가 관측된 만큼, 이미 침입 흔적이 남아 있을 수 있습니다. 업데이트는 새로운 침입을 막을 뿐, 이미 심어진 악성 파일을 지워 주지는 않습니다.
- 확인 방법
- 최근 바뀐 적 없는 날짜에 새로 생기거나 수정된 파일이 있는지 봅니다.
- 관리자 계정 목록에 모르는 계정이 생기지 않았는지 확인합니다.
- PHP 프로세스가 셸을 실행하거나 외부에서 프로그램을 내려받은 기록이 있는지 서버 로그를 봅니다(CISA 권고).
물어볼 질문 : "업데이트하면서 악성 파일·변조 흔적 점검도 함께 해 주실 수 있나요?"
-
06
홈페이지 말고 다른 PHP 프로그램도 확인하세요
CISA는 PHP가 다른 소프트웨어 안에 들어 있어 겉으로 드러나지 않는 경우가 많다고 경고했습니다. 사내 그룹웨어, 쇼핑몰 솔루션, 별도 관리자 페이지, 오래된 이벤트·랜딩 페이지 서버도 같은 위험에 놓여 있습니다.
- 확인 방법
- 회사에서 운영 중인 웹 서비스 주소를 모두 목록으로 정리합니다.
- 인터넷에 공개된 서버부터 우선순위를 두고 하나씩 버전을 확인합니다.
물어볼 질문 : "저희 회사 서버 중 PHP가 쓰이는 곳이 홈페이지 말고 또 있나요?"
업데이트 점검 체크리스트
호스팅사나 제작사와 통화할 때 아래 항목을 하나씩 확인해 보세요.
- 현재 PHP 버전과 실행 방식(FPM·mod_php·CGI)을 확인했다
- 패치 버전(8.5.12 · 8.4.27 · 8.3.36 · 8.2.35) 이상으로 올렸다
- 업데이트 후 PHP 작업 프로세스를 모두 재시작했다
- 8.1 이하라면 버전 이전 일정과 담당자를 정했다
- 8.2라면 2026년 12월 31일 지원 종료 전 이전 계획을 세웠다
- 업데이트 전 임시 설정(session.upload_progress 끄기 등)을 적용했다
- 메인·게시판·문의 폼·회원·결제 등 핵심 기능이 정상인지 확인했다
- 새로 생긴 파일, 모르는 관리자 계정 등 침입 흔적을 점검했다
- 홈페이지 외에 PHP를 쓰는 다른 서버도 확인했다
이런 홈페이지는 더 서두르세요
- PHP 8.1 이하로 만든 홈페이지 — 공식 보안 업데이트를 받을 수 없습니다.
- PHP 8.2를 쓰는 홈페이지 — 2026년 12월 31일 지원이 끝납니다.
- Apache mod_php 방식으로 돌아가는 서버 — 공식 발표에서 가장 위험한 환경으로 꼽혔습니다.
- 제작한 지 몇 년이 지났고 그동안 PHP 버전을 한 번도 올리지 않은 홈페이지
- 제작 업체와 연락이 끊겼거나, 서버를 누가 관리하는지 모르는 경우
- 회원 정보·주문 정보처럼 개인정보를 저장하는 홈페이지
- 프릭스의 빠른 보안 점검
- 프릭스는 2005년부터 기업·기관 홈페이지를 기획부터 개발까지 직접 수행해 왔습니다. 이번 PHP 취약점과 관련해 다른 업체에서 만든 홈페이지도 빠르게 점검해 드립니다. 서버의 실제 PHP 버전과 이번 취약점 대상 여부를 확인하고, 홈페이지가 새 버전에서 그대로 동작하는지 점검한 뒤 조치 방법까지 안내해 드립니다. 버전을 몰라도 홈페이지 주소만 알려 주시면 됩니다. 빠른 보안 점검 상담 신청하기
자주 묻는 질문
PHP2Shell이 무엇인가요?
우리 홈페이지가 PHP로 만들어졌는지 어떻게 아나요?
보안 설정만 바꾸면 업데이트를 안 해도 되나요?
업데이트하면 홈페이지가 멈추지 않을까요?
웹호스팅을 쓰고 있으면 호스팅사가 알아서 해 주나요?
참고 자료
이 글은 아래 공식 발표를 바탕으로 2026년 10월 22일 기준으로 정리했습니다. 이후 내용이 바뀔 수 있으니 최신 공지를 함께 확인하세요.
- PHP 공식 보안 공지 · 릴리스 (2026-10-20, 10-21) — php.net
- CVE-2026-109618 보안 권고 — GHSA-w8hw-w9fx-j79w
- CVE-2026-109619 보안 권고 — GHSA-6wmf-4rv5-p3rp
- 미국 CISA 경보 (2026-10-21) — Critical Vulnerabilities in PHP Require Immediate Patching
