PHP2SHELL CHECK
Exposure Assessment · CVE-2026-109618 / 109619

PHP2Shell
노출 점검 보고서

php7403-u20-fpm-userini 서버의 실제 서빙 경로(웹서버 → SAPI/FPM pool → PHP 빌드)와 실효 설정을 읽어 두 취약점의 성립 조건을 판정하고, 관리자가 적용할 조치를 파일·줄 단위로 제시합니다. 점검은 비파괴로 수행됐습니다.

1
서빙 경로
1
도달가능
0
완화됨(임시)
1
판정보류 1 · 패치됨 0
호스트
php7403-u20-fpm-userini
점검 시각
2026-10-23 22:48:26
점검 도구
php2shell_host.py v1.0
판정 근거
PHP_취약점_동향_2026-10.md §2
PHP2SHELL CHECK01 요약

01  Executive Summary

요약

서빙 경로 1개 · 판정 2건

1
서빙 경로
1
도달가능
0
완화됨(임시)
1
판정보류 1 · 패치됨 0
i
설정 변경은 임시 완화입니다. PHP는 설정만으로 완전히 완화되지 않는다고 밝혔습니다(PHP_취약점_동향_2026-10.md:96). ‘완화됨(임시)’은 ‘안전’이 아닙니다.
침해 징후 확인 항목 1건이 있습니다(06). 판정이 아니라 확인이 필요한 근거입니다.

판정 기준

도달가능이 서버의 SAPI·실효 설정에서 문서가 확인한 공격 경로의 전제조건이 성립합니다.
완화됨(임시)문서의 임시 완화 설정이 요청 파싱 전 단계에 적용돼 있습니다. 업그레이드 전까지의 조치입니다.
판정보류근거가 부족하거나 설정을 읽지 못해 단정하지 않습니다. 도달불가가 아닙니다.
패치됨수정 버전 이상이거나 패키지 changelog에 백포트 기록이 있습니다.
PHP2Shell 노출 점검 보고서 · php7403-u20-fpm-useriniConfidential02
PHP2SHELL CHECK02 점검 대상

02  Scope

점검 대상

웹서버 → SAPI/FPM pool → PHP 빌드 단위로 판정합니다

ID대상버전 판정실행웹서버
U01PHP 7.4 FPM pool [www]
7.4.3-4ubuntu2.29
PHP 7.4는 공식 수정 릴리스가 없고 소스 백포트만 있습니다(PHP_취약점_동향_2026-10.md:69). changelog(/usr/share/doc/php7.4-fpm/changelog.Debian.gz)에 CVE 백포트 기록 없음.실행 중
2026-10-23 21:50:31
nginx lab-php7.4.localhost
PHP2Shell 노출 점검 보고서 · php7403-u20-fpm-useriniConfidential03
PHP2SHELL CHECK03 CVE별 판정

03  Findings

CVE별 판정

CVSS v4.0 9.2 · 두 CVE × 서빙 경로

CVE대상판정신뢰도수정버전근거
CVE-2026-109618U01판정보류medium없음(EOL)FPM은 startup 실패 시 워커를 종료해 이 경로가 차단되지만, startup 이후 취약할 수 있다는 분석이 있어 도달불가로 단정할 수 없습니다(DOC:44).
CVE-2026-109619U01도달가능high없음(EOL)session.upload_progress가 활성(PHP 기본값)이라 session_start() 없이도 세션 라이프사이클 경로가 성립합니다. mod_php·FPM 모두 해당(DOC:54).

판정 근거 (서빙 경로)

F01 CVE-2026-109618판정보류U01
nginx lab-php7.4.localhost (/etc/nginx/sites-enabled/default:1)
location ~ \.php$ (/etc/nginx/sites-enabled/default:7)
→ unix:/run/php/php7.4-fpm.sock
FPM pool [www] (/etc/php/7.4/fpm/pool.d/www.conf:4) listen=/run/php/php7.4-fpm.sock
PHP 7.4.3 (dpkg: php7.4-fpm 7.4.3-4ubuntu2.29)
multipart 파싱 중 memory_limit 초과 → 부분 초기화 데이터 정리

SAPI=fpm, memory_limit=128M (/etc/php/7.4/fpm/php.ini:409)

F02 CVE-2026-109619도달가능U01
nginx lab-php7.4.localhost (/etc/nginx/sites-enabled/default:1)
location ~ \.php$ (/etc/nginx/sites-enabled/default:7)
→ unix:/run/php/php7.4-fpm.sock
FPM pool [www] (/etc/php/7.4/fpm/pool.d/www.conf:4) listen=/run/php/php7.4-fpm.sock
PHP 7.4.3 (dpkg: php7.4-fpm 7.4.3-4ubuntu2.29)
fatal error로 정리 중단 → 같은 워커의 다음 요청이 stale state 소비

SAPI=fpm, session.upload_progress.enabled=1 (PHP 기본값)

  • session.upload_progress.enabled=0 (/var/www/html/.user.ini:1) — .user.ini/ini_set은 적용 시점이 늦어 효과가 없습니다(DOC:108).
PHP2Shell 노출 점검 보고서 · php7403-u20-fpm-useriniConfidential04
PHP2SHELL CHECK04 조치 사항

04  Remediation

조치 사항

우선순위 순 · 파일·줄 단위

즉시PHP 7.4: 패키지 공급원에 백포트 여부 확인
문제
PHP 7.4는 공식 수정 릴리스가 없고 소스 백포트만 있습니다(PHP_취약점_동향_2026-10.md:69). changelog(/usr/share/doc/php7.4-fpm/changelog.Debian.gz)에 CVE 백포트 기록 없음.
현재
php7.4-fpm 7.4.3-4ubuntu2.29
위치
배포판 공식 패키지 · 대상 U01
조치
패키지 공급원의 보안 업데이트를 확인하고, 없으면 지원 브랜치로 이전합니다.
확인
zcat /usr/share/doc/php7.4-fpm/changelog.Debian.gz | grep -E 'CVE-2026-109618|CVE-2026-109619'
근거
PHP_취약점_동향_2026-10.md:69
임시 완화CVE-2026-109619 임시 완화: session.upload_progress 비활성화
문제
기본 활성 상태의 upload progress가 stale state 소비 경로를 엽니다.
현재
session.upload_progress.enabled=1 (PHP 기본값)
위치
/etc/php/7.4/fpm/pool.d/www.conf · 대상 U01
조치
/etc/php/7.4/fpm/pool.d/www.conf 의 [www] 섹션에 추가:
php_admin_value[session.upload_progress.enabled] = 0
※ ini_set()·.user.ini로는 효과 없음
확인
sudo systemctl restart php7.4-fpm
sudo python3 php2shell_host.py  # 재점검으로 판정 변화 확인
영향
세션 기반 업로드 진행률 표시 기능이 동작하지 않습니다.
근거
PHP_취약점_동향_2026-10.md:54, :108
임시 완화CVE-2026-109618 임시 완화: memory_limit 잠금 + 요청 크기 제한
문제
multipart 파싱 중 memory_limit 초과로 부분 초기화된 요청 데이터가 정리되며 메모리 손상이 일어납니다.
현재
memory_limit=128M (/etc/php/7.4/fpm/php.ini:409)
post_max_size=8M (/etc/php/7.4/fpm/php.ini:694)
upload_max_filesize=2M (/etc/php/7.4/fpm/php.ini:846)
nginx client_max_body_size=1m(기본값) (/etc/nginx/sites-enabled/default:1)
위치
/etc/php/7.4/fpm/pool.d/www.conf · 대상 U01
조치
/etc/php/7.4/fpm/pool.d/www.conf 의 [www] 섹션에 추가:
php_admin_value[memory_limit] = -1

memory_limit=-1은 요청별 상한을 없애므로 서비스 단위 메모리 상한을 함께 둡니다:
sudo systemctl edit php7.4-fpm
  [Service]
  MemoryMax=<서버 메모리에 맞는 값>
(RLIMIT_AS/RLIMIT_DATA는 사용하지 않습니다)
확인
sudo systemctl restart php7.4-fpm
sudo python3 php2shell_host.py  # 재점검으로 판정 변화 확인
영향
앱이 multipart를 쓰지 않으면 웹서버 앞단에서 multipart 요청 자체를 차단하는 것이 가장 확실합니다(DOC:105).
근거
PHP_취약점_동향_2026-10.md:101-105
임시 완화효과 없는 완화 설정 정리
문제
이 위치의 설정은 요청 파싱 이후 적용되어 효과가 없습니다.
현재
session.upload_progress.enabled=0 (/var/www/html/.user.ini:1)
위치
/var/www/html/.user.ini:1 · 대상 U01
조치
해당 줄을 제거하고 pool/php.ini 수준 설정으로 옮깁니다.
확인
sudo python3 php2shell_host.py  # 재점검으로 판정 변화 확인
근거
PHP_취약점_동향_2026-10.md:108
정비PHP 버전 헤더 노출 차단(expose_php)
문제
X-Powered-By로 PHP 버전이 공개되어 공격 대상 선별에 쓰입니다.
현재
expose_php=On (/etc/php/7.4/fpm/php.ini:379)
위치
/etc/php/7.4/fpm/php.ini:379 · 대상 U01
조치
/etc/php/7.4/fpm/php.ini:379: expose_php = Off
확인
sudo systemctl restart php7.4-fpm
curl -sI https://<호스트>/ | grep -i x-powered-by   # 출력이 없어야 함
PHP2Shell 노출 점검 보고서 · php7403-u20-fpm-useriniConfidential05
PHP2SHELL CHECK05 침해 징후 · 부록

05  Compromise & Appendix

침해 징후 · 부록

판정이 아닌 확인 항목 · 점검 방식 공개

확인 필요침해 징후 확인: 2026-10-17 이후 변경된 .php 파일

배포에 의한 정상 변경일 수 있습니다. 배포 이력과 대조해 설명되지 않는 파일을 확인합니다.

1개

2026-10-23 01:52  /var/www/html/index.php

find /var/www/html -name '*.php' -newermt 2026-10-17 -ls

투명성 부록

비파괴실행한 명령 0건 · 네트워크 요청 0건 · 쓰기는 보고서 디렉터리(/tmp/php2shell_report)만
읽은 파일40개 (전체 목록은 report.json)
읽지 못한 파일0개
한계설정 파일 기준 실효값이며 재시작 반영은 파일 수정 시각으로 추정합니다. Apache php_* 지시자는 전역으로 취급합니다. RHEL 계열 패키지 버전, php-cgi·LiteSpeed·FrankenPHP, 익스플로잇 성공 조건(AC:H/AT:P)은 판정하지 않습니다.
PHP2SHELL CHECK2026-10-23 22:48:26
PHP2Shell 노출 점검 보고서 · php7403-u20-fpm-useriniConfidential06
PHP2SHELL CHECK06 운영 중인 구버전 서버 대응

06  Operating Guidance

운영 중인 구버전 서버 대응

오늘 · 이번 주 · 업그레이드 경로 · 불가능할 때

업그레이드가 답이라는 것은 대개 이미 알고 있습니다. 문제는 운영 중인 서버를 그때까지 어떻게 다루느냐입니다.

1. 오늘: 서비스를 멈추지 않고 할 수 있는 일

2. 이번 주: 보안 수정이 들어간 패키지 확보

3. 업그레이드 경로: 중단 없이 옮기기

4. 당장 업그레이드할 수 없을 때

5. 다른 조직의 서버에서 발견했을 때

근거 표기의 DOC는 PHP_취약점_동향_2026-10.md입니다.
PHP2SHELL CHECK2026-10-23 22:48:26
PHP2Shell 노출 점검 보고서 · php7403-u20-fpm-useriniConfidential07