PHP2Shell과 이번 주 주요 보안 취약점: 서버 패치 방법 (2026년 10월)
이번 주에는 최근 몇 년 사이 가장 심각한 PHP 보안 사고 중 하나가 발생했습니다. 2026년 10월 21일 PHP 프로젝트는 PHP2Shell로 불리는 원격 코드 실행(RCE) 취약점 2건에 대한 긴급 릴리스를 배포했습니다. 세부 정보가 하루 일찍 유출되었고, 몇 시간 만에 공격자들이 서버를 탐색하기 시작했습니다. 동시에 Microsoft의 역대 최대 규모 10월 Patch Tuesday와 CISA KEV 신규 항목들로 IT 팀의 긴급 작업이 늘어났습니다.
이 글에서는 무슨 일이 있었는지, 어떤 시스템이 영향을 받는지, 그리고 정확한 패치 및 완화 방법을 정리하여 향후 24~72시간의 우선순위를 정할 수 있도록 돕습니다.
핵심 요약
- 지금 PHP를 업데이트하세요: 수정 버전은 8.5.12, 8.4.27, 8.3.36, 8.2.35입니다. PHP는 업데이트만이 완전한 해결책이라고 밝혔습니다.
- 가장 위험한 환경: Apache mod_php로, 애플리케이션 코드가 실행되기 전에 익스플로잇이 동작할 수 있습니다. PHP-FPM, php-cgi, FrankenPHP, LiteSpeed도 특정 조건에서 영향을 받습니다.
- 실제 공격 시도 발생: Cloudflare와 watchTowr는 10월 21일 실제 공격 시도를 보고했습니다.
- 구버전 PHP(8.1, 8.0, 7.4)는 정식 수정 없음: 배포판 또는 벤더의 수정 빌드를 사용하거나, 소스 백포트를 적용하거나, 업그레이드하세요.
- 이번 주 함께 패치할 항목: Windows Shell 제로데이 CVE-2026-96951, 그리고 Ivanti, Palo Alto PAN-OS, Fortinet, Cisco, BeyondTrust, Atlassian의 KEV 등재 취약점.
PHP2Shell이란?
PHP2Shell은 특정 프레임워크나 CMS가 아닌 PHP 런타임 자체에 존재하는 두 가지 취약점을 가리킵니다. 따라서 서버가 취약한 PHP 빌드를 사용한다면 WordPress, WooCommerce, Magento, Laravel 및 자체 개발 PHP 사이트 모두 영향을 받을 수 있습니다. 두 취약점 모두 PHP가 CVSS v4.0 기준 9.2점으로 평가했으며 Wiz, Calif, OpenAI 연구진이 보고했습니다.
- CVE-2026-109618 (메모리 부족으로 인한 손상): out-of-memory 오류가 요청을 중단시키고 데이터를 부분적으로 초기화된 상태로 남깁니다. 이후 정리 코드가 이 잘못된 상태를 처리하면서 원격 코드 실행 경로가 열립니다.
- CVE-2026-109619 (오래된 전역 상태 / use-after-free): PHP가 메모리 해제 후에도 요청 데이터에 대한 참조를 유지하며, 같은 워커의 다음 요청이 이를 재사용할 수 있습니다. 연구진은 세션 업로드 진행(session upload progress) 기능을 통해 코드 실행을 시연했습니다.
- 메모리 노출: 인증 없이 PHP 워커 메모리를 유출할 수 있음도 확인되어 비밀번호, 세션 토큰, API 키가 노출될 수 있습니다.
영향받는 버전과 수정 버전
PHP 브랜치 | 수정 버전 | 비고 |
|---|---|---|
8.5 | 8.5.12 | 즉시 패치가 어렵다면 fatal_error_backtraces=0 설정 |
8.4 | 8.4.27 | 즉시 업그레이드 |
8.3 | 8.3.36 | 즉시 업그레이드 |
8.2 | 8.2.35 | 2026년 12월 31일 지원 종료 |
8.1 / 8.0 / 7.4 | 정식 업스트림 릴리스 없음 | 배포판·벤더 수정 빌드 사용, 소스 백포트 적용 또는 업그레이드 |
리눅스 배포판은 버전 번호를 바꾸지 않고 수정 사항을 백포트하는 경우가 많습니다. Ubuntu, Debian, Red Hat, Alpine 등에서는 버전 문자열만 보지 말고 패키지 changelog나 벤더 보안 공지에서 두 CVE ID를 확인하세요.
PHP2Shell 단계별 패치 방법
- 모든 PHP 런타임을 파악하세요. 웹 서버, 컨테이너, CI 이미지, 보조 설치본까지 포함합니다. 명령줄의
php -v가 실제 웹 요청을 처리하는 바이너리와 다를 수 있으니phpinfo()나 FPM 풀도 확인하세요. - 수정 버전으로 업데이트하세요. Ubuntu/Debian 예시:
sudo apt update && sudo apt install --only-upgrade php8.3 php8.3-fpm. RHEL 계열은dnf update php*를 사용합니다. Docker는 최신 공식 php 이미지 태그로 다시 빌드해 배포하세요. - 모든 PHP 프로세스를 재시작하세요. PHP-FPM, Apache(mod_php), LiteSpeed 또는 FrankenPHP를 재시작해 이전 워커가 남지 않도록 합니다.
- 검증하세요. 설치된 패키지와 실행 중인 워커가 모두 수정 빌드인지 확인합니다.
- 패치 후 메모리 설정을 점검하세요. 수정 사항은 더 엄격한 메모리 제한을 도입해 장시간 스크립트와 shutdown handler가 중단될 수 있으므로 import, 리포트 같은 무거운 작업을 테스트하세요.
- 노출되었다면 비밀 정보를 교체하세요. 취약한 빌드가 인터넷에 노출되어 있었다면 메모리 유출 위험을 고려해 DB 비밀번호, API 키, 세션 시크릿 교체를 검토하세요.
오늘 바로 패치할 수 없다면: 임시 완화 방법
아래 조치는 위험을 줄여 주지만 취약점을 완전히 해결하지는 않습니다. 정식 업데이트 전까지의 임시 방편으로만 사용하세요.
- CVE-2026-109619: php.ini 또는 FPM 풀 설정에서
session.upload_progress.enabled=0으로 설정하고 워커를 재시작합니다. ini_set()이나 .user.ini에 의존하지 마세요. PHP 8.5에서는fatal_error_backtraces=0도 설정합니다. - CVE-2026-109618:
post_max_size=8M(업로드가 필요하면 32M)로 설정하고upload_max_filesize를 그보다 작게 유지하며, Nginx, Apache 또는 WAF에서 요청 크기를 제한하고 앱이 사용하지 않는 multipart 요청을 차단합니다. - 메모리 제한: RLIMIT_AS나 RLIMIT_DATA 대신 컨테이너 또는 cgroup 메모리 제한을 사용합니다.
- PHP-FPM: 성능이 허용된다면
pm.max_requests=1을 고려해 워커당 하나의 요청만 처리하도록 합니다. - 노출 최소화: 관리자 페이지와 스테이징 사이트를 VPN 또는 IP 허용 목록 뒤에 두고, PHP2Shell용 WAF/CDN 규칙을 활성화하세요.
서버가 공격 대상이 되었을 수 있는 징후
- 비정상적인 multipart POST 요청 뒤에 이어지는 메모리 한도 오류 로그
- HTTP 500 응답의 급증
- 비정상적으로 큰 PHPSESSID 쿠키
- 원인 불명의 PHP 워커 크래시 또는 재시작
- 업로드·캐시 폴더에 새로 생기거나 수정된 PHP 파일
이번 주 기타 주요 취약점
긴급한 문제는 PHP만이 아닙니다. Microsoft의 2026년 10월 Patch Tuesday(10월 13일)는 약 1,411개의 취약점을 수정했으며, 이 중 70개가 Critical 등급이고 제로데이가 3개입니다. CISA도 10월 13일부터 16일 사이 실제 악용 중인 여러 취약점을 KEV 카탈로그에 추가했습니다.
CVE | 제품 | 문제 | 상태 |
|---|---|---|---|
CVE-2026-96951 | Windows Shell | Mark of the Web 보안 우회 | 실제 악용 중, Windows Update로 패치 |
CVE-2026-108398 | .NET Framework | 보안 기능 우회(WDAC) | 공개됨 |
CVE-2026-104935 | Ivanti Connect Secure | 인증 우회 | CISA KEV 등재 |
CVE-2026-0322 | Palo Alto Networks PAN-OS | 코드 인젝션 | CISA KEV 등재 |
CVE-2025-61624 | Fortinet 제품 | 경로 탐색(Path traversal) | CISA KEV 등재 |
CVE-2026-76519 | Cisco Secure Email Gateway | 경로 탐색(Path traversal) | CISA KEV 등재 |
CVE-2026-102764 | BeyondTrust Remote Support | 인증 우회 | CISA KEV 등재 |
CVE-2026-21589 | Atlassian 제품 | 파일·디렉터리 노출 | CISA KEV 등재, 공개 PoC 존재 |
이 모든 항목에 대해 VPN 게이트웨이, 방화벽, 원격 지원 도구, 메일 게이트웨이처럼 인터넷에 노출된 시스템을 우선 처리하세요. 벤더 패치를 적용하고 설치 버전을 확인하며, 즉시 패치할 수 없다면 관리 인터페이스를 신뢰된 네트워크로 제한하거나 해당 기능을 비활성화하세요.
Windows 10·11 사용자 참고 사항
2026년 10월 업데이트는 Windows 11 24H2 Home·Pro와 Windows 10 Enterprise LTSB 2016의 마지막 보안 업데이트입니다. 해당 버전을 사용 중인 PC는 업그레이드 계획을 세우세요.
OneXT Digital의 지원
많은 기업이 서로 다른 호스팅, 버전, 플러그인으로 수십 개의 PHP 사이트를 운영하고 있어 긴급 패치가 느리고 위험합니다. OneXT Digital 팀은 PHP, WordPress, WooCommerce, Magento 환경을 점검하고, PHP2Shell 패치 또는 임시 보안 강화를 적용하며, 업데이트 후 사이트를 테스트하고, 다음 치명적 CVE가 몇 주가 아닌 몇 시간 안에 처리되도록 유지보수 체계를 구축해 드립니다. 무료 웹사이트 보안 점검을 원하시면 문의해 주세요.

