PHP2Shell 취약점 안내
PHP를 사용하는 모든 웹 서비스는 즉시 보안 업데이트를 적용해 주세요.
이 취약점은 로그인 없이 외부에서 서버 명령을 실행할 수 있는 PHP 엔진 취약점입니다.
패치 공개 전 취약점 정보가 유출되었고, 패치 당일부터 실제 공격이 관측되고 있습니다.
한국인터넷진흥원(KISA)에서 공지한 즉시조치 권고를 확인하세요.
어떤 취약점인가요
Wiz Research가 AI를 활용해 PHP에 10년 이상 남아 있던 메모리 안전성 취약점을 찾아내고 실제 원격 공격으로 재현했습니다. 특정 CMS나 애플리케이션이 아닌 PHP 엔진 자체의 결함이므로, 애플리케이션 코드와 관계없이 취약한 PHP 버전을 쓰는 서비스는 영향을 받을 수 있습니다.
- 대상
- PHP 코어 엔진
- 유형
- 원격 코드 실행(RCE)
- 인증 필요 여부
- 불필요
- 공개일
- 2026. 10. 21.
PHP 워커 프로세스는 여러 요청을 처리하며 재사용됩니다. 메모리 부족(OOM) 같은 예외 상황에서 요청이 비정상 종료되면 내부 상태가 손상되거나 다음 요청까지 남고, 이를 이용해 메모리 손상과 코드 실행으로 이어집니다.
| CVE | 원인 | CVSS v4.0 |
|---|---|---|
| CVE-2026-109618 | 메모리 부족(OOM) 처리 중 발생하는 메모리 손상 | 9.2 |
| CVE-2026-109619 | 비정상 종료된 요청의 내부 상태(stale global state)가 다음 요청에 남는 문제 | 9.2 |
| 영향 | 내용 | 예상 피해 |
|---|---|---|
| 원격 코드 실행 | 웹서버 실행 계정 권한으로 공격자 코드가 실행됩니다. | 웹셸 설치, 홈페이지 변조, DB 탈취, 내부망 침투 |
| 메모리 유출 | 워커 메모리 일부가 HTTP 응답으로 노출될 수 있습니다. | DB 비밀번호, API 키, 인증 토큰, 다른 사용자 정보 |
| 서비스 장애 | 공격 과정에서 PHP 워커가 비정상 종료됩니다. | HTTP 500 오류, 응답 지연 |
영향 버전과 패치 버전
PHP는 10월 21일 23시(KST) 두 CVE를 함께 수정한 보안 업데이트를 배포했습니다.
PHP 공식 입장은 "설정 변경만으로 완전히 막을 수 없으며 업데이트만이 안전한 선택"입니다.
| PHP | 취약 버전 | 조치 |
|---|---|---|
| 8.5 | 8.5.12 미만 | 8.5.12 이상 |
| 8.4 | 8.4.27 미만 | 8.4.27 이상 |
| 8.3 | 8.3.36 미만 | 8.3.36 이상 |
| 8.2 | 8.2.35 미만 | 8.2.35 이상 2026-12-31 지원 종료 예정 |
| 8.1 / 8.0 / 7.4 | 전체 | 공식 릴리스 없음 배포판(Ubuntu·Debian·RHEL 등)·LTS 업체 보안 업데이트 또는 PHP 보안팀 소스 백포트 적용 |
| 7.3 이하 (5.x 포함) | 전체 | 패치 없음 지원 버전(8.3 이상)으로 전환 |
* 배포판 패키지는 보안 패치를 반영해도 버전 번호가 바뀌지 않을 수 있습니다.
* 패키지 변경 이력(changelog)에서 CVE 반영 여부를 확인해 주세요.
지금 해야 할 일
조치 우선순위
| 등급 | 대상 |
|---|---|
| P1 긴급 | 인터넷에 노출된 서버 + Apache mod_php |
| P2 높음 | 인터넷에 노출된 서버 + PHP-FPM, php-cgi, FrankenPHP, LiteSpeed |
| P3 관리 | 내부망 전용 PHP 서비스 |
* 우선순위는 순서를 정하기 위한 기준입니다.
* 취약 버전이라면 실행 환경과 관계없이 모두 패치 대상입니다.
환경별 패치 버전
| 환경 | PHP 대상 | CVE-2026-109618 | CVE-2026-109619 | 관련 URL |
|---|---|---|---|---|
| PHP 공식 (소스) | 8.5 / 8.4 / 8.3 / 8.2 | 패치 버전: 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 | 같은 버전 | PHP: Downloads |
| PHP 공식 (백포트) | 8.1 / 8.0 / 7.4 | 소스 백포트 브랜치 PHP-8.1-CVE-2026-109618-109619 (8.0, 7.4도 같은 형식) | 같은 브랜치 | PHP: News Archive - 2026 |
| Ubuntu | 26.10 (php8.5) | 8.5.9-0ubuntu2.1 | 같은 버전 | CVE-2026-109618 | Ubuntu CVE-2026-109619 | Ubuntu |
| 26.04 LTS (php8.5) | 8.5.4-0ubuntu1.5 | 같은 버전 | ||
| 24.04 LTS (php8.3) | 8.3.6-0ubuntu0.24.04.13 | 같은 버전 | ||
| 22.04 LTS (php8.1) | 8.1.2-1ubuntu2.28 | 같은 버전 | ||
| 20.04 LTS (php7.4) | 7.4.3-4ubuntu2.29+esm5 (Ubuntu Pro) | 같은 버전 | ||
| Debian | 13 trixie (php8.4) | 8.4.27-1~deb13u1 (DSA-6574-1) | 같은 버전 | CVE-2026-109618 CVE-2026-109619 |
| 12 bookworm (php8.2) | 8.2.35-1~deb12u1 (DLA-4848-1) | 같은 버전 | ||
| RHEL 계열 | php (기본, 8.3) | php-8.3.36-1.el10_2 | 같은 버전 | CVE-2026-109618 - Red Hat Customer Portal RHSB-2026-013 "php2shell" - Red Hat Customer Portal |
| php8.4 | php8.4-8.4.27-1.el10_2 | |||
| php (기본, 8.0) | php-8.0.30-8.el9_8.1 | |||
| php:8.2 모듈 | php-8.2.35-1.module+el9.8.0+25111+a1450321 | |||
| php:8.3 모듈 | php-8.3.36-1.module+el9.8.0+25109+6886e21a | |||
| php:7.4 모듈 | php-7.4.33-8.module+el8.10.0+25117+30337cca | |||
| Windows | 8.5 / 8.4 / 8.3 / 8.2 | 패치 버전: 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 | 같은 버전 | PHP: Downloads |
| Docker 공식 이미지 | 8.5 / 8.4 / 8.3 / 8.2 | 패치 태그: php:8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 | 같은 버전 | php - Official Image | Docker Hub |
점검 체크리스트
| No. | 점검 항목 | 확인 |
|---|---|---|
| 1 | 운영 중인 PHP 버전을 확인하고, 수정 버전으로 업데이트합니다. | |
| 2 | 업데이트 후 PHP를 실행하는 모든 웹 서비스(PHP-FPM, Apache, php-cgi, FrankenPHP, LiteSpeed)를 재시작합니다. | |
| 3 | 웹 서비스가 실제로 쓰는 PHP 버전이 바뀌었는지 확인합니다. php -v 결과와 웹 서비스의 버전이 다를 수 있으니, 한 서버에 PHP가 여러 개라면 각각 확인합니다. | |
| 4 | 패치 전 외부에 노출됐던 서버는 침해 여부를 점검합니다. 웹 루트에 새로 생기거나 바뀐 PHP 파일(웹셸)이 있는지, 웹서버 프로세스가 셸을 실행한 이력이 있는지 확인합니다. | |
| 5 | 응답에서 비정상적으로 길거나 깨진 PHPSESSID 쿠키가 확인되면 메모리 유출 가능성이 있습니다. DB 비밀번호·API 키·애플리케이션 시크릿을 교체하고 모든 사용자 세션을 무효화합니다. |
바로 패치할 수 없다면
아래는 공식 권고에 따른 임시 조치이며 완전한 해결책이 아닙니다. 패치 일정은 반드시 확보해 주세요.
- 외부 접근 제한: 즉시 패치할 수 없는 서버는 인터넷 노출을 최소화(접근 IP 제한, 불필요한 공개 중단)합니다.
- PHP 설정: session.upload_progress.enabled=0, post_max_size 축소(8M~32M) 검토, PHP 8.5는 fatal_error_backtraces=0
- SGA솔루션즈의 vAegis·RedCastle 무상지원으로 패치 전 공백을 보완할 수 있습니다.
설정 변경은 ini_set()이나 .user.ini로 적용되지 않는 항목이 있으므로 php.ini 또는 FPM pool 설정에 반영하고, 변경 후 모든 워커를 재시작해야 합니다.
취약점 공개 타임라인
- Wiz Research, AI 도구로 최초 취약점 발견
- Drupal·WordPress에서 인증 없는 원격 코드 실행 확인 출처 확인 필요
- PHP 보안팀에 신고
- PHP 보안팀 접수 확인, 수정 협력
- PHP 사전 공지 공개, 같은 날 SNS를 통해 취약점 정보 유출(당초 공개 예정일 10. 22.)
- 긴급 패치 배포 및 취약점 정보 공개, 실제 공격 시도 관측 시작
PHP2Shell 취약점 대응을 위한
vAegis · RedCastle 무상 지원
PHP 패치를 적용하기까지 걸리는 시간 동안 서버가 공격에 그대로 노출되지 않도록, SGA솔루션즈는 PHP2Shell 대응용 vAegis와 RedCastle을 무상으로 제공합니다.
vAegis · RedCastle이 어떻게 공격을 막아낼 수 있나요?
점선 화살표: 1차 방어를 우회한 경우의 경로
제공 조건
- 제공 대상
- RedCastle 또는 vAegis 기사용 고객 / 신규 고객
- 제공 기간
- 신청일로부터 1개월
- 제공 범위
- 상담 후 지원 범위 확정
- 신청 기한
- 2026년 11월 30일(월)까지
- 기간 종료 후
- 무상 라이선스 종료 / 라이선스 연장을 원할 경우 정식계약으로 전환
신청 및 적용 절차
- 신청아래 신청 버튼을 통해 회사명, 담당자명을 남겨 주세요.
- 환경 확인OS, PHP 실행 방식(mod_php·FPM), 웹 계정을 함께 확인합니다.
- 설치·정책 적용경고(WARN) 모드로 먼저 적용해 서비스 영향을 확인합니다.
- 차단 전환영향이 없음을 확인한 뒤 차단 모드로 전환합니다.
vAegis와 RedCastle 무상지원 신청하고
PHP2Shell 취약점에 대응하세요!
아래 버튼을 클릭하시고 신청폼을 작성해 주세요.
SGA솔루션즈가 빠르게 연락드리고 안내해 드리겠습니다.
문의처
- 담당 부서
- 전략마케팅팀
- 이메일
- sales@sgacorp.kr
* 제품별 상세 정책 가이드(RedCastle 웹셸 실행 차단 정책 가이드, vAegis 룰셋 대응 가이드)는 신청 고객사에 별도로 제공합니다.
* 본 무상지원은 PHP 보안 업데이트 전까지 공격 위험을 줄이기 위한 보완 조치이며, 모든 공격의 차단이나 침해 사고 미발생을 보장하지 않습니다.
* 세부 제공 조건은 신청 시 별도 안내에 따릅니다.