임시 조치는 불완전합니다

전체 패치만 모든 변형을 해결합니다. 설정은 업로드·성능·가용성에 영향을 줄 수 있습니다. 요청 분석 전에 관리자 설정으로 적용하고 전체 워커를 재시작하세요. 두 권고문을 함께 읽으세요. CDN과 WAF는 수정 증거가 아닙니다.

메모리 설정 주의

memory_limit=-1은 PHP 한도로 유발되는 일부 OOM만 줄이며 OS 할당 실패는 남습니다. 별도의 컨테이너·cgroup 제한이 필요합니다. RLIMIT_AS와 RLIMIT_DATA로 대체하지 마세요. 디코딩 크기, multipart 헤더·파트·중첩을 제한하세요. post_max_size만으로 부족합니다.

업로드와 역추적

분석 전에 session.upload_progress.enabled=0을 적용하고 재시작하세요. PHP 8.5의 fatal_error_backtraces=0은 확인된 경로만 제거합니다. 초기 진단을 만드는 잘못된 INI를 제거하세요. display_errors, error_reporting, @는 결함을 막지 못하고 모든 변형을 덮지 못합니다.

경로별 임시 조치

패치가 우선입니다. 임시로 요청 파싱 전 관리 설정으로 session.upload_progress.enabled=0을 강제하고 재시작하세요. PHP 8.5의 fatal_error_backtraces=0은 다른 경로를 줄입니다. 디코딩된 크기, multipart 부분/헤더와 입력 깊이를 일찍 제한하고 업로드를 시험하세요. 오류 표시나 로그만 끄면 진단 경로는 남습니다.

PHP2Shell 도구 →

메모리와 재활용의 한계

관리 수준 memory_limit=-1은 일부 OOM 경로만 제거합니다. 독립된 cgroup/컨테이너 제한, 앱의 유한 제한 복원 금지와 재시작이 필요합니다. RLIMIT_AS나 RLIMIT_DATA는 사용하지 마세요. 할당 실패가 같은 경로로 들어갑니다. pm.max_requests=1도 비용을 감수해 일부 요청 간 상태만 줄입니다. 두 패치를 대체하지 못합니다.

PHP2Shell 도구 →

명령 예시 / PHP INI

php.ini
; Temporary measures only. Follow both PHP advisories.
; Apply administratively BEFORE request parsing, then restart workers.
session.upload_progress.enabled = 0
; PHP 8.5 only:
fatal_error_backtraces = 0

; memory_limit = -1 is NOT a complete fix.
; It needs independent OS/container resource containment.
; Never substitute RLIMIT_AS or RLIMIT_DATA.

일차 출처 및 추가 자료

PHP security teamSecurity advisory · 21 Oct 2026
CVE-2026-109618GHSA-w8hw-w9fx-j79w · OOM corruption
CVE-2026-109619GHSA-6wmf-4rv5-p3rp · Stale global state
다음 단계3. 전체 재시작 및 검증 ↗