PHP2Shell(CVE-2026-109618 · CVE-2026-109619)는 PHP 엔진 자체의 결함으로, 로그인 없이 인터넷에서 서버 명령을 실행할 수 있습니다. 그누보드 · 워드프레스 같은 프로그램 패치로는 막히지 않고 서버의 PHP 를 바꿔야 합니다.
호스팅 관리 화면, phpinfo 의 PHP Version, 또는 서버에서 php -v 결과를 그대로 붙여 넣으세요.
입력하면 바로 판정합니다. 입력한 값은 상담을 신청하기 전까지 어디에도 보내지 않습니다.
영향 범위는 PHP 5.4 부터입니다. 웹 요청을 처리하는 모든 실행 방식(PHP-FPM · Apache mod_php · php-cgi · LiteSpeed 등)이 대상이며, PHP 측은 앱 코드가 실행되기 전에 공격이 들어오는 Apache mod_php 구성을 가장 위험하다고 봤습니다.
| PHP 계열 | 상태 | 할 일 |
|---|---|---|
| 8.2 · 8.3 · 8.4 · 8.5 | 수정 버전 있음 | 같은 계열의 수정 버전(8.2.35 · 8.3.36 · 8.4.27 · 8.5.12) 이상으로 올립니다. 사이트 코드 수정은 거의 필요 없습니다. |
| 7.4 · 8.0 · 8.1 | 공식 수정 릴리스 없음 | PHP 보안팀이 최소한의 소스 백포트만 냈습니다. 직접 빌드하지 않는 한 8.4.27 같은 지원 계열로 옮겨야 합니다. |
| 5.4 ~ 7.3 | 수정 없음 (지원 종료) | PHP 8 으로 전환해야 합니다. 오래된 스킨 · 플러그인은 호환 수정이 함께 필요할 수 있습니다. |
| 5.3 이하 | 이번 취약점 대상 아님 | 다만 지원이 끝난 지 오래되어 다른 공개 취약점이 많습니다. 전환을 권합니다. |
하나라도 해당하면 PHP 일 가능성이 높습니다. 주소가 .do · .jsp · .aspx 로 끝나면 대개 Java 나 ASP.NET 입니다.
Ubuntu · Debian · RHEL 의 기본 PHP 패키지는 버전 숫자를 그대로 두고 보안 수정을 넣습니다(예: 8.1.2-1ubuntu2.19). 서버를 직접 운영한다면 배포판 보안 공지(USN · DSA · RHSA)에서 지금 패키지가 수정본인지 확인하세요. 명령줄의 php -v 와 웹에서 쓰는 PHP 가 다른 경우도 많아, phpinfo 기준으로 봐야 정확합니다.
금액은 부가가치세 별도입니다. 견적서와 같은 식(공수 × 인력 등급 단가 × 난이도 계수 + 관리비 10%)으로 계산했고, 근거를 카드마다 적었습니다. 작업 동의서에 서명하기 전에는 비용이 발생하지 않습니다.
버전을 모르거나, 당장 올릴 수 없을 때
지금 쓰는 PHP 가 위험한지 확인하고, 수정 버전을 올리기 전까지 공격 경로를 임시로 막습니다.
산정 근거: 2시간 × 전문가 150,000원 × 설정 변경 1.0 + 관리비 10%
8.2 ~ 8.5 를 쓰고 있을 때
같은 계열의 수정 버전(8.2.35 · 8.3.36 · 8.4.27 · 8.5.12 이상)으로 올리고 사이트가 정상인지 확인합니다.
산정 근거: 3.5시간 × 전문가 150,000원 × 패치 1.2 + 관리비 10%
7.x 또는 8.0 · 8.1 을 쓰고 있을 때
수정 버전이 없는 PHP 5.4~8.1 을 8.4 로 옮기고, 그누보드 · 영카트 · 워드프레스 스킨과 플러그인 오류를 고칩니다.
산정 근거: 10시간 × 선임 110,000원 × 코드 수정 1.5 + 관리비 10%
이미 공격받았을까 걱정될 때 (추가 선택)
이미 공격을 받았는지 원본 코드 · 로그 · 계정을 대조해 확인합니다. 패치 전 노출 기간이 길었다면 함께 권합니다.
산정 근거: 5시간 × 전문가 150,000원 × 설정 변경 1.0 + 관리비 10%
PHP 측이 안내한 임시 완화책입니다. 완전한 해결이 아니므로 수정 버전 적용까지 시간을 버는 용도로만 쓰세요. 서버 설정을 직접 바꿀 수 있는 경우에 해당합니다.
CVE-2026-109619 대상. session.upload_progress.enabled 를 끕니다. PHP 8.5 는 fatal_error_backtraces 도 끕니다.
CVE-2026-109618 대상. memory_limit 을 앱이 바꾸지 못하게 고정(-1)하고, 메모리는 컨테이너 · cgroup 으로 제한합니다.
설정을 바꾼 뒤 모든 PHP 프로세스(PHP-FPM 또는 Apache)를 재시작해야 적용됩니다.
최근 바뀐 .php 파일, 업로드 폴더 안의 .php 파일, 비정상적인 PHP 프로세스 종료 기록을 확인합니다.
; php_admin_* 는 앱이 ini_set 으로 덮어쓸 수 없다 php_admin_flag[session.upload_progress.enabled] = off php_admin_value[memory_limit] = -1 ; Apache mod_php 라면 httpd 설정에 ; php_admin_flag session.upload_progress.enabled off ; php_admin_value memory_limit -1
sudo systemctl restart php8.3-fpm # mod_php 는 apache2 · httpd php -i | grep -E 'upload_progress.enabled|memory_limit' # 최근 7일 안에 바뀐 PHP 파일, 업로드 폴더 안의 PHP 파일 find /var/www -name '*.php' -mtime -7 -ls find /var/www -path '*/data/*' -name '*.php' -ls
공유 호스팅은 이 설정을 직접 바꿀 수 없는 경우가 많습니다. 호스팅 관리 화면에서 PHP 버전을 수정 버전으로 바꾸거나 업체에 문의하세요. Cloudflare 를 거치는 사이트는 WAF 룰이 적용되지만 임시 방편입니다.
고객 서버에서 하는 작업이므로 작업 동의서에 범위와 시간대를 정한 뒤 시작합니다.
사이트 주소 · PHP 버전 · 호스팅 업체를 알려 주시면 영업일 1일 안에 연락드립니다.
작업 동의서에 범위와 작업 시간대를 정하고 서명합니다. 서버 · 호스팅 접속 정보는 메일 · 메신저로 받지 않고 전화 · 대면으로 전달받습니다.
수정 버전을 올리기 전에 공격 경로부터 막고 웹셸 · 변조 파일을 1차 점검합니다.
백업과 되돌리기를 준비한 뒤 수정 버전으로 올립니다. 전환이 필요하면 사본에서 먼저 검증합니다.
외부에서 다시 확인하고 조치 완료 보고서를 드립니다. 작업이 끝나면 접속 비밀번호를 바꿔 주세요.
해당됩니다. PHP2Shell 은 그누보드 같은 프로그램이 아니라 그 아래에서 돌아가는 PHP 엔진의 결함입니다. 프로그램 · 플러그인 패치로는 막히지 않고, 서버의 PHP 를 수정 버전으로 바꿔야 합니다.
공유 호스팅은 업체가 PHP 를 관리하지만, 사이트별로 고른 PHP 버전은 고객이 바꿔야 하는 경우가 많습니다. 업체 공지에서 수정 버전 제공 여부를 확인하고, 오래된 버전을 고른 상태라면 직접 바꾸거나 맡겨 주세요.
많은 사이트가 버전 표시를 숨겨 두어 바깥에서는 정확히 알 수 없습니다. 서버 안에서 확인하는 것이 가장 정확합니다. 외부 진단이 필요하면 소유권 확인과 진단 동의서 서명 뒤 Quick 외부 진단으로 진행합니다 — 동의 없는 진단은 하지 않습니다.
이번 취약점은 PHP 에만 해당합니다. 다만 같은 기관의 하위 사이트(관광 · 행사 · 쇼핑몰 등)는 따로 PHP 로 만든 경우가 많으니 각각 확인하세요.
아닙니다. PHP 측이 안내한 임시 완화책은 알려진 공격 경로를 줄일 뿐 완전한 해결이 아닙니다. 수정 버전 적용까지의 시간을 버는 용도로만 쓰세요.
견적서 · 사업자등록증 · 세금계산서를 발행하고, 기관 양식의 작업 동의서 · 보안 서약서에도 서명합니다. 상담 때 필요한 서류를 알려 주세요.
영업일 1일 안에 연락드립니다. 급하면 전화 주세요.
근거: PHP 보안 공지와 Tenable 정리(2026-10-22 확인) — www.tenable.com · www.php.net. 수정 버전이 추가로 나오면 이 페이지를 갱신합니다.