| 취약점 | CVE-2026-109618, CVE-2026-109619 (통칭 "php2shell") |
|---|---|
| 심각도 | CVSS 9.2 (Critical) — 두 취약점 모두 |
| 영향 | 인증 없이 원격에서 PHP 프로세스 권한으로 임의 코드 실행 → 웹 애플리케이션과 서버 전체 장악 가능 |
| 영향 버전 | PHP 8.2.35 미만, 8.3.36 미만, 8.4.27 미만, 8.5.12 미만 / 8.1 이하는 지원 종료로 취약한 것으로 간주 |
| 영향 구성 | 웹 요청을 처리하는 모든 PHP — PHP-FPM, Apache mod_php, php-cgi(CGI 모드), FrankenPHP, LiteSpeed |
| 조치 | PHP 보안 업데이트 적용 (유일한 완전한 조치) |
| runZero 쿼리 | vendor:=PHP AND product:=PHP (Software 인벤토리) |
PHP 프로젝트가 2026년 10월 21일 보안 업데이트를 발표했습니다. 두 취약점 모두 인증이 필요 없는 원격 코드 실행 취약점입니다.
| CVE | 내용 |
|---|---|
| CVE-2026-109618 | PHP가 메모리 부족(out-of-memory) 오류를 만나면 longjmp()로 현재 처리를 빠져나가는데, 이때 요청 데이터가 일부만 초기화된 상태로 남을 수 있습니다. 이후 정리 단계에서 잘못된 데이터를 읽으면서 원격 코드 실행으로 이어질 수 있습니다. 조작된 multipart 요청으로 유발할 수 있으며, Apache mod_php에서는 애플리케이션 코드가 실행되기 전에 발생할 수 있습니다. |
| CVE-2026-109619 | PHP의 전역 상태가 요청이 소유한 메모리를 가리키는데, 메모리 해제 전에 이 상태가 초기화되지 않으면 같은 워커가 처리하는 다음 요청이 남아 있는 상태를 사용할 수 있습니다. 이 역시 인증 없는 원격 코드 실행으로 이어집니다. |
PHP는 웹 서버에서 동작하는 대표적인 서버 측 스크립트 언어입니다. CMS, 전자상거래 플랫폼, 웹 프레임워크 등 많은 웹 애플리케이션이 PHP 위에서 동작하므로, 직접 PHP를 설치하지 않았더라도 이런 애플리케이션을 통해 취약한 런타임이 노출될 수 있습니다.
공격에 성공하면 인증되지 않은 원격 공격자가 PHP 프로세스 권한으로 임의의 코드를 실행할 수 있습니다. 이는 해당 웹 애플리케이션뿐 아니라 그 아래 서버 전체의 장악으로 이어질 수 있습니다. 특히 인터넷에 노출된 웹 서버를 우선 점검해야 합니다.
| PHP 버전 계열 | 조치 버전 |
|---|---|
| 8.2 | 8.2.35 이상 |
| 8.3 | 8.3.36 이상 |
| 8.4 | 8.4.27 이상 |
| 8.5 | 8.5.12 이상 |
| 8.1 이하 | 지원 버전으로 이전하거나, 배포판·LTS 벤더의 백포트 패치 적용 |
리눅스 배포판과 LTS 벤더는 사전에 패치를 받았으므로 각 벤더의 패키지 채널을 확인합니다. 소스로 빌드하는 경우를 위해 PHP 보안팀이 7.4, 8.0, 8.1용 최소 소스 백포트도 제공했습니다.
| 대상 | 완화 조치 |
|---|---|
| CVE-2026-109618 | 애플리케이션이 덮어쓸 수 없도록 memory_limit=-1 설정 / post_max_size를 낮게 설정 / 웹 서버·프록시에서 요청 크기, multipart 파트 수, 헤더, 중첩 한도 제한 |
| CVE-2026-109619 | session.upload_progress.enabled=0 설정 / PHP 8.5는 fatal_error_backtraces=0 설정 / 모든 워커 재시작 / 요청 초기화 전에 진단 메시지를 내는 잘못되었거나 폐기된 요청별 설정 제거 |
자세한 내용은 PHP 보안 권고와 GitHub Security Advisories(GHSA-w8hw-w9fx-j79w, GHSA-6wmf-4rv5-p3rp)를 참고하세요.
runZero의 Software 인벤토리에서 아래 쿼리로 잠재적으로 취약한 PHP가 설치된 시스템을 찾을 수 있습니다.
| 담당자 | 전화번호 | 이메일 |
|---|---|---|
| 김대원 | 010-2267-0053 | peterkim@kdsys.co.kr |