PHP2Shell 취약점
가게 홈페이지·쇼핑몰 PHP 버전 확인하고 업체에 물어볼 것
PHP2Shell 취약점 공개 뒤 KISA가 '최소한 10월 20일 이후 서버 기록을 보라'고 했습니다. 그리고 PHP 8.2는 12월 31일에 보안 지원이 끝납니다.
업데이트만 하면 끝나는 일이 아닙니다. 버전을 올린 뒤에도 그사이 들어온 흔적이 없는지 확인해야 하고, 8.2를 쓰는 사이트는 두 달 안에 한 번 더 옮겨야 합니다. 직접 서버를 만지지 않는 사장님이라면 업체에 물어볼 질문만 챙기면 됩니다.
KISA는 10월 21일 업데이트를 권고했고, 22일 대응 수칙, 24일 추가 결함(CVE-2026-115560) 임시 조치, 26일 과기정통부와 FAQ를 차례로 냈습니다(10월 26일 발표 기준).
1. PHP2Shell, 무엇이 위험하고 어느 버전이 안전한가
PHP는 쇼핑몰, 예약 페이지, 게시판형 홈페이지를 움직이는 프로그램 언어입니다. 이번 결함(CVE-2026-109618, CVE-2026-109619, CVSS 9.2)은 로그인 없이 밖에서 서버 명령을 실행할 수 있는 종류입니다. KISA는 공격에 성공하면 웹셸 설치, 고객정보 유출, 홈페이지 변조, 내부망 침투까지 이어질 수 있다고 설명했습니다.
| 쓰는 버전 | 안전한 버전 | 해야 할 일 |
|---|---|---|
| PHP 8.5 | 8.5.12 이상 | 업데이트 후 웹 서비스 재시작 |
| PHP 8.4 | 8.4.27 이상 | 업데이트 후 웹 서비스 재시작 |
| PHP 8.3 | 8.3.36 이상 | 업데이트 후 웹 서비스 재시작 |
| PHP 8.2 | 8.2.35 이상 | 업데이트 + 12월 31일 지원 종료 전 8.3 이상 전환 |
| PHP 8.1 이하 | 공식 업데이트 없음 | 지원 버전으로 전환, 전환 전 임시 조치 |
표에서 볼 칸은 맨 아래 두 줄입니다. 오래전에 외주로 만든 사이트일수록 8.1 이하에 머물러 있을 가능성이 큽니다.
2. 우리 사이트가 PHP를 쓰는지, 몇 버전인지 확인하는 순서
① 무료 점검 사이트에 주소 넣기
과기정통부·KISA FAQ는 웹사이트 주소만 넣으면 PHP 사용 여부와 버전을 보여 주는 곳으로 스틸리언, 엔키화이트햇, 티오리, 파이오링크 4곳을 안내했습니다.
② 결과 화면 저장
나온 버전을 캡처해 둡니다. 점검 사이트마다 결과가 다를 수 있다고 FAQ에 적혀 있습니다.
③ 관리자 페이지·이벤트 페이지도 확인
본 홈페이지 말고도 예전 이벤트 페이지, 테스트 서버, 관리자 주소가 따로 있다면 함께 넣어 봅니다.
④ 업체에 실제 버전 묻기
점검 결과만으로 끝났다고 보지 말고 제작·호스팅 업체에 서버에 실제 적용된 버전을 확인받습니다.
임대형 쇼핑몰 솔루션(호스팅사가 서버를 통째로 관리하는 방식)을 쓴다면 대부분 업체 쪽에서 조치합니다. 그래도 조치 완료 공지가 있었는지 관리자 화면 공지사항을 한 번 확인하세요.
3. 호스팅 업체가 알아서 해 주는 것 아닌가요
서버를 빌려 쓰는 방식에 따라 다릅니다. 웹호스팅은 업체가 PHP를 올려 주는 경우가 많지만, 서버호스팅·클라우드 서버는 서버 관리 책임이 사용자 쪽에 있는 계약이 흔합니다. 계약서나 상품 설명에 'PHP 버전 관리' 주체가 누구로 적혀 있는지 보세요. 애매하면 아래 질문 네 줄을 그대로 보내면 됩니다.
| 업체에 물어볼 것 | 왜 필요한가 |
|---|---|
| 우리 사이트의 실제 PHP 버전이 해결 버전 이상인가요? | 점검 사이트 결과와 서버 실제 값이 다를 수 있습니다 |
| 업데이트 후 PHP-FPM 등 웹 서비스를 재시작했나요? | 재시작하지 않으면 예전 버전이 계속 돌아갑니다 |
| 10월 20일 이후 접속 기록에 이상한 요청이나 웹셸 흔적이 없나요? | KISA가 이 날짜 이후 로그 점검을 권고했습니다 |
| 관리자·DB 비밀번호와 외부 연동 키를 바꿨나요? | 침해 흔적이 있다면 교체가 필수입니다 |
바로 업데이트가 어려운 경우 KISA는 요청 크기 제한, 불필요한 파일 업로드 차단 같은 임시 조치를 안내했습니다. 다만 임시 조치는 완전한 방어가 아니어서 업데이트가 먼저라고 밝혔습니다. 10월 24일 공개된 추가 결함은 특정 설정이 겹칠 때만 열리는 것으로 알려졌고, 정식 패치 전까지 보호나라 공지의 임시 조치를 따라야 합니다.
4. 해킹 흔적이 보이면 서버부터 끄지 마세요
KISA 대응 수칙은 순서를 분명히 합니다. 서버를 재시작하거나 끄지 말고 외부 접속부터 막아 격리한 뒤, 보호나라로 신고하고 로그·프로세스·네트워크 정보를 증거로 남깁니다. 그다음 업데이트, 웹셸 제거, 인증정보 교체로 넘어갑니다. 서버를 먼저 끄면 원인을 찾을 기록이 사라질 수 있습니다.
| 필요한 도움 | 연락처 |
|---|---|
| 침해사고 신고 | 보호나라(boho.or.kr) 침해사고 신고, 118 |
| 소상공인 보안 상담 | 전국 16개 지역정보보호지원센터 |
| 고객정보 유출이 의심될 때 | 개인정보보호위원회 유출 신고(개인정보 포털) |
인터넷에 돌아다니는 '취약점 테스트 코드(PoC)'를 직접 돌려 보는 일은 하지 마세요. KISA는 출처가 불분명한 PoC가 악성코드일 수 있다고 경고했습니다.
자주 하는 질문
Q1. 워드프레스나 그누보드로 만든 사이트도 해당되나요?
두 프로그램 모두 PHP 위에서 돌아갑니다. 프로그램 자체 업데이트와 별개로 서버의 PHP 버전을 확인해야 합니다.
Q2. 점검 사이트에서 PHP 버전이 안 나와요.
서버가 버전 정보를 숨기도록 설정돼 있으면 표시되지 않을 수 있습니다. 이 경우 업체에 실제 버전을 직접 확인받으세요.
Q3. PHP 8.2인데 8.2.35로만 올려도 되나요?
이번 결함은 막히지만 8.2는 12월 31일 보안 지원이 끝납니다. 연말 전에 8.3 이상으로 옮기는 일정을 업체와 잡아 두세요.
Q4. 사이트를 직접 관리할 사람이 없어요.
과기정통부 FAQ는 소상공인이 지역정보보호지원센터에서 보안 상담을 받을 수 있다고 안내했습니다. 제작 업체가 연락되지 않는 경우에도 상담을 받아 보세요.
관련기관 공식 홈페이지
마무리
PHP2Shell 취약점은 로그인 없이 서버 명령을 실행할 수 있는 PHP 결함이고, 8.5.12·8.4.27·8.3.36·8.2.35 이상으로 올린 뒤 재시작과 10월 20일 이후 로그 점검까지 해야 끝납니다.
지금 할 일은 하나입니다. 오늘 제작·호스팅 업체에 '실제 PHP 버전과 재시작 여부'를 묻는 메시지를 보내세요.
