php2shell(CVE-2026-109618 / 109619)은 php -v로 판정할 수 없다 — FPM·Docker·배포판에서 버전 숫자가 어긋나는 곳
CLI와 FPM의 버전 차이, Docker 태그, 배포판 백포트, 공유 호스팅에서 확인할 것

이 페이지는 일본어 원문을 AI로 번역한 것입니다. 내용이 다를 경우 원문인 일본어 버전이 우선합니다: 日本語
웹 요청을 처리하는 PHP(PHP-FPM, Apache의 mod_php, php-cgi, FrankenPHP, LiteSpeed)가 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12보다 이전 버전이면 php2shell로 불리는 CVE-2026-109618과 CVE-2026-109619의 영향을 받는다. 해결 방법은 이 수정 버전(배포판 패키지라면 수정된 패키지)으로 올리고 프로세스를 재시작하는 것이다. 확인해야 할 것은 손 닿는 곳의 php -v가 아니라 “웹을 실제로 구동하는 PHP”와 “설치된 패키지의 버전”이다.
이 글은 버전 숫자만으로 판단하면 틀리기 쉬운 곳을 네 가지로 추려 정리한다. 모든 수치와 상황은 2026-10-22 시점이며, 각 항목의 출처는 끝에 모아 두었다.
2026-10-22 시점에 알려진 내용
| 항목 | 내용 |
|---|---|
| CVE | CVE-2026-109618(GHSA-w8hw-w9fx-j79w) / CVE-2026-109619(GHSA-6wmf-4rv5-p3rp) |
| 심각도 | PHP 공지에서는 두 건 모두 CVSS v4.0 9.2(Critical) |
| 수정 버전 | 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35(2026-10-21 공개) |
| 영향을 받는 버전 | 위 수정 버전 이전(GitHub 어드바이저리의 기재) |
| 대상 | 웹 요청을 처리하는 모든 PHP. 공지가 이름을 든 것은 PHP-FPM, mod_php, php-cgi, FrankenPHP, LiteSpeed이며, 위험도가 가장 높다고 한 것은 mod_php다. GitHub 어드바이저리에서는 악용이 실증된 것이 mod_php이고, FPM과 FrankenPHP는 “미실증” 또는 “조건부”로 분류되어 있다. 미실증이 안전하다는 뜻은 아니므로, 어떤 방식으로 PHP를 구동하든 수정 버전으로 올려야 한다 |
| 8.1 이전 | PHP 프로젝트의 업데이트는 나오지 않는다. 7.4 / 8.0 / 8.1용으로는 소스의 최소한의 백포트가 공개되어 있으며, 일부 배포판과 LTS 벤더가 수정을 제공하는 경우도 있다 |
| 8.2 | 2026-12-31에 지원 종료(8.2.35 릴리스 노트 기준) |
PHP 공지는 “완전한 대책은 업데이트뿐”이라고 밝히고 있다. 업데이트 전까지의 완화책은 글 후반에 적었다.
함정 1: php -v와 웹 쪽 PHP는 별개일 수 있다
SSH에서 입력하는 php -v는 CLI용 PHP의 버전을 보여 준다. 웹 요청을 처리하는 것은 PHP-FPM 프로세스나 Apache에 로드된 mod_php이며, 이는 별개의 바이너리, 별개의 패키지다. CLI에만 새 PHP를 설치했거나, 여러 버전을 나란히 설치했거나, FPM 풀이 다른 버전을 가리키는 구성에서는 php -v가 수정 버전이어도 웹 쪽은 옛 버전 그대로일 수 있다.
웹 쪽의 실제 버전을 확인하는 방법은 몇 가지가 있다.
# Debian / Ubuntu의 FPM (버전별로 이름이 붙어 있음)
php-fpm8.3 -v
# RHEL 계열의 FPM
php-fpm -v
# Apache에 mod_php가 로드되어 있는지
apachectl -M | grep -i php
가장 확실한 방법은 웹을 통해 실제로 실행되는 PHP가 직접 버전을 말하게 하는 것이다. 추측하기 어려운 이름의 파일을 임시로 두고, 확인이 끝나면 바로 삭제한다.
<?php echo PHP_VERSION, ' ', PHP_SAPI;
PHP_SAPI가 fpm-fcgi이면 FPM, apache2handler이면 mod_php, cgi-fcgi이면 CGI로 동작하는 것이다. phpinfo()를 노출한 채 두는 것은 그 자체로 정보가 유출되므로 피한다.
또 하나 놓치기 쉬운 것이 재시작이다. 패키지를 교체해도 이미 실행 중인 php-fpm이나 Apache 프로세스가 옛 코드로 계속 동작할 수 있다. 패키지 업데이트 시 자동으로 재시작되는 구성도 있지만 그렇지 않은 구성도 있다. 업데이트했다면 FPM / Apache를 재시작하고, 위의 방법으로 웹 쪽 버전을 다시 확인한다.
함정 2: Docker는 “태그 이름”으로 판단할 수 없다
공식 이미지 php에는 8.3이나 8.3-fpm처럼 내용이 교체되는 “이동 태그”와, 8.3.30처럼 버전을 고정한 태그가 있다.
- 이동 태그는 Docker Hub 쪽에서 수정 버전으로 교체되어도, 로컬에서 다시 pull하기 전까지는 옛 이미지 그대로다. 게다가 실행 중인 컨테이너는 다시 만들기 전까지 옛 이미지로 계속 동작한다.
Dockerfile의FROM php:8.3-fpm도 빌드 캐시에 옛 베이스가 남아 있으면 옛 베이스로 빌드된다. - 고정 태그는 직접 번호를 올리기 전까지 영원히 옛 버전이다.
수정 버전 태그가 나왔는지는 Docker Hub API로 확인할 수 있다.
curl -s "https://hub.docker.com/v2/repositories/library/php/tags?name=8.3.36&page_size=100"
2026-10-22에 네 개 계열에 대해 조회한 결과는 다음과 같다(시각은 UTC).
| 수정 버전 | 발견된 태그 수 | Debian 계열 태그(-fpm, -apache 등)가 나온 시각 | Alpine 계열 태그 |
|---|---|---|---|
| 8.5.12 | 54(RC1 포함) | 2026-10-21 18:59–22:13 | 2026-10-21 22:12–10-22 01:05 |
| 8.4.27 | 54(RC1 포함) | 2026-10-21 22:09–22:11 | 2026-10-21 22:09–10-22 03:58 |
| 8.3.36 | 27 | 2026-10-21 22:04–22:06 | 2026-10-21 22:04–10-22 03:56 |
| 8.2.35 | 27 | 2026-10-21 21:59–22:01 | 2026-10-21 22:00–10-22 00:58 |
이때 확인하면서 알게 된, 숫자로 판단하면 헷갈리는 점이 세 가지 있다.
- “최근 업데이트됨”은 “수정됨”이 아니다. 고정 태그
8.3.35는 2026-10-21 중에 다시 빌드되었지만, 안의PHP_VERSION은 8.3.35 그대로였다. 업데이트 시각이 아니라 안에 들어 있는 버전을 봐야 한다. - digest가 달라도 내용이 같은 경우가 있다.
8.3과8.3.36은 태그의 digest(여러 아키텍처를 묶은 인덱스의 값)가 달랐지만, amd64 이미지는 같은 것이었고 둘 다PHP_VERSION=8.3.36이었다.8.3-fpm/8.3.36-fpm,8.4-apache/8.4.27-apache,latest/8.5.12,8.5-fpm,8.2-fpm도 마찬가지로 amd64 이미지의PHP_VERSION은 수정 버전이었다. - 8.1 이전의 공식 이미지에는 수정 버전이 없다.
8.1-fpm의 마지막 업데이트는 2025-12-31이었다.
로컬 이미지와 실행 중인 컨테이너를 확인하려면 다음과 같이 한다.
# 로컬에 pull해 둔 이미지의 PHP 버전
docker image inspect php:8.3-fpm --format '{{range .Config.Env}}{{println .}}{{end}}' | grep PHP_VERSION
# 다시 받아서 컨테이너를 다시 만든다
docker compose pull
docker compose up -d
# 직접 빌드한다면 베이스를 다시 받은 뒤 빌드한다
docker compose build --pull
# 실행 중인 컨테이너 안의 버전
docker compose exec app php -r 'echo PHP_VERSION, PHP_EOL;'
마지막 명령의 app은 자신의 서비스 이름으로 바꾼다. 공식 이미지는 이미지 하나에 PHP_VERSION 하나로 빌드되므로, 컨테이너 안 CLI의 버전은 그 컨테이너의 FPM / Apache 버전과 같다(함정 1은 호스트에 직접 설치한 경우의 이야기다).
FrankenPHP는 PHP를 내부에 내장하고 있으므로 FrankenPHP 자체의 버전과 내장된 PHP의 버전은 다른 숫자다. 2026-10-21에 공개된 FrankenPHP 1.13.2의 릴리스 노트에는 Docker 이미지는 PHP 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12로, 정적 바이너리는 PHP 8.5.12로 빌드했다고 적혀 있다.
함정 3: 배포판 패키지는 “옛 숫자 그대로 수정된다”
Ubuntu와 RHEL은 수정 사항만 옛 버전에 이식(백포트)한다. php -v에 나오는 숫자는 옛날 그대로이므로 “8.3.36보다 작으니 위험하다”라고 숫자로 판정하면, 수정되어 있는데도 위험하다고 나온다. 반대로 숫자만 보고 안심할 수도 없다. 판정은 패키지 버전과 각 배포판의 보안 트래커로 한다.
2026-10-22 시점에 각 트래커에 올라 있던 수정된 패키지(두 CVE 모두 동일).
| 배포판 | 패키지 | 수정된 버전 | 출처 |
|---|---|---|---|
| Ubuntu 22.04 (jammy) | php8.1 | 8.1.2-1ubuntu2.28 | USN-8948-1 |
| Ubuntu 24.04 (noble) | php8.3 | 8.3.6-0ubuntu0.24.04.13 | USN-8948-1 |
| Ubuntu 26.04 (resolute) | php8.5 | 8.5.4-0ubuntu1.5 | USN-8948-1 |
| Ubuntu (stonking) | php8.5 | 8.5.9-0ubuntu2.1 | USN-8948-1 |
| Ubuntu 14.04 / 16.04 / 18.04 / 20.04 | php5 / php7.0 / php7.2 / php7.4 | Ubuntu Pro(Legacy Support 포함)로 제공 | USN-8948-2 |
| Debian 12 (bookworm) | php8.2 | 8.2.35-1~deb12u1 | DLA-4848-1 |
| Debian 13 (trixie) | php8.4 | 8.4.27-1~deb13u1 | DSA-6574-1 |
| RHEL 10 | php / php8.4 | 8.3.36-1.el10_2 / 8.4.27-1.el10_2 | Red Hat |
| RHEL 9 | php (기본) | 8.0.30-8.el9_8.1 | Red Hat |
| RHEL 9 | php 모듈 8.2 / 8.3 | 8.2.35-1.module+el9.8.0… / 8.3.36-1.module+el9.8.0… | Red Hat |
| RHEL 8 | php 모듈 7.4 / 8.2 | 7.4.33-8.module+el8.10.0… / 8.2.35-1.module+el8.10.0… | Red Hat |
숫자만으로는 판정할 수 없다는 사례가 이 표에 그대로 나와 있다. Ubuntu 24.04의 수정된 PHP는 8.3.6으로 시작하는 버전으로, upstream의 8.3.36보다 훨씬 작다. RHEL 9의 기본 PHP는 8.0.30 그대로 수정되어 있는데, upstream에서는 8.0에 더 이상 수정 버전이 나오지 않는다. Debian은 upstream과 같은 번호(8.2.35 / 8.4.27)로 올렸다.
아직 수정되지 않은 곳도 있다(2026-10-22 시점).
- RHEL 9의 php 모듈 8.4는 “영향 있음, 수정 없음”으로 분류되어 있다.
- Debian forky(testing)는 php8.4 8.4.26-1로 “vulnerable”이다. sid(unstable)의 php8.4는 8.4.27-1로 수정되었다.
내 서버에서 확인하는 명령어 예시.
# Debian / Ubuntu: 설치된 버전과 받을 수 있는 버전
apt-cache policy php8.3-fpm libapache2-mod-php8.3
# Ubuntu: 이 CVE가 내 서버에서 수정되어 있는지
pro fix CVE-2026-109618
pro fix CVE-2026-109619
# RHEL 계열: 이 CVE를 수정하는 업데이트가 있는지, 설치된 버전
dnf updateinfo list --cve CVE-2026-109618
rpm -q php-fpm php-cli
패키지 이름(php8.3-fpm 등)은 자신의 환경에 맞춘다. 나온 버전을 위 표나 트래커의 “수정된 버전”과 비교해서 같거나 더 높으면 수정이 들어간 것이다. 그런 다음 함정 1의 재시작과 웹 쪽 확인까지 마친다.
한편 배포판 기본이 아니라 외부 저장소에서 PHP를 설치했다면 그 저장소의 업데이트를 확인해야 한다. PHP 공지는 자원봉사자가 운영하는 rpms.remirepo.net은 공개 당일에는 업데이트가 나오지 않는다며, 배포판 패키지나 직접 빌드로 전환할 것을 권하고 있다.
함정 4: 공유 호스팅·매니지드 환경은 직접 올릴 수 없다
공유 호스팅이나 매니지드 PHP 환경에서는 PHP 본체를 교체하는 것이 사업자다. 여기서도 숫자만으로는 판단할 수 없다. 사업자가 독자적으로 빌드했거나 수정을 이식했다면 버전 숫자는 옛날 그대로일 수 있다.
직접 할 수 있는 것은 이 세 가지다.
- 웹 쪽 버전을 확인한다. 함정 1의 임시 파일로
PHP_VERSION과PHP_SAPI를 출력하고 바로 삭제한다. 관리 화면에 PHP 버전을 고르는 화면이 있다면 어느 버전을 선택하고 있는지도 적어 둔다. - 사업자의 공지를 확인하고, 없으면 문의한다. 물어볼 것은 “CVE-2026-109618과 CVE-2026-109619의 수정이 내 계약의 어느 PHP 버전에 언제 들어가는지(들어갔는지)”다. 버전 숫자가 아니라 CVE 번호로 물으면 백포트 여부까지 답을 받을 수 있다.
- 지원이 끝난 버전을 선택하고 있다면 올린다. 8.1 이전은 PHP 프로젝트에서 수정이 나오지 않는다. 8.2도 2026-12-31에 지원이 끝난다. 사업자가 수정을 이식하지 않았다면 버전 전환이 확실한 길이다.
호스팅 업체별 대응 상황(2026-10-22 시점)
공유 호스팅에서는 PHP 본체의 업데이트를 업체 쪽에서 하는 것이 보통이며, 공지에서도 “이용자 측 작업은 불필요”라고 하는 곳이 많다. 이용자가 할 일은 계약 중인 회사의 공식 공지를 확인하는 것, 그리고 관리 화면에서 옛 PHP 버전을 선택하고 있다면 공지가 안내하는 버전(수정 버전이 있는 버전)으로 전환할지 검토하는 것, 이 두 가지다.
아래 표는 각 회사의 공식 페이지(공지·점검 정보)에 적혀 있는 내용만 정리한 것으로, 공지 문구를 요약했다. 공지는 수시로 갱신되므로 실제 상황은 반드시 출처의 공식 페이지에서 확인하기 바란다.
| 회사·서비스 | 공식 공지의 요점 | 공지 일시 | 출처 |
|---|---|---|---|
| エックスサーバー | “PHP 8.2~8.5에 대해 대상이 되는 모든 서버에 수정 패치 적용을 완료”. 옛 버전은 “일부 버전에서 수정 패치 준비가 끝났으며, 검증·확인이 끝난 것부터 순차 적용”, 그 밖의 옛 버전도 대응 중이라고 적혀 있다 | 10/22 6:45 시점의 기재(같은 페이지는 13:15 시점까지 갱신) | メンテナンスの進捗状況 |
| シン・レンタルサーバー | 공지 페이지에는 Xserver와 같은 “점검 진행 상황”이 올라 있지만, Shin Rental Server의 PHP 상황을 특정해서 적은 기재는 찾지 못했다(지원 문의로 확인 필요) | - | お知らせ |
| ConoHa WING | “현재 이용 중인 PHP 버전을 유지한 채 당사에서 보안 패치를 적용”. 기본적으로 이용자 측의 버전 변경은 불필요하지만 PHP 5.x·7.x에서는 변경이 필요할 수 있다고 적혀 있다. 파일 매니저·웹메일은 예방 차원에서 일시 중지, 사이트 표시와 메일 송수신은 평소대로 | 10/22 | 【重要】PHPの脆弱性への弊社対応について |
| さくらのレンタルサーバ | “당사 컨트롤 패널에서 선택할 수 있는 모든 PHP 버전에 대해 취약점 대응을 완료”. “고객께서 실시하셔야 할 긴급 대응은 없습니다”라고 하며, 앞으로는 지원 기간 내의 최신 버전으로 이전할 것을 권장. 웹메일은 10/22 13:45에 대응을 완료했고 phpMyAdmin은 대응 중이라고 적혀 있다 | 10/22(13:45 갱신) | PHPの脆弱性(CVE-2026-109618、CVE-2026-109619)への対応状況について |
| ロリポップ! | 수정 버전 공개에 앞선 예방 조치 점검 공지(서비스 사이트·사용자 전용 페이지 등을 순서대로 중지, 경우에 따라 예고 없이 사이트를 중지·제한할 수 있다는 내용). 10/22 시점에 PHP 수정 완료를 알리는 공지는 찾지 못했다(지원 문의로 확인 필요) | 10/21 | 【重要】PHPの脆弱性への予防措置に伴うメンテナンス実施のお知らせ |
| ヘテムル | “PHP 8.x와 PHP 7.4에 대해서는 공식 수정 버전을 적용”, 그 외의 버전은 “공식 수정 내용을 토대로 당사에서 독자 수정”. “모든 버전에서 일부 기능(session.upload_progress)이 비활성화”되었으므로 자신의 사이트 동작 확인을 요청하고 있다. 옛 버전은 앞으로 수정이 나오지 않을 수 있다며 새 버전으로의 전환을 안내 | 10/21 19:44 게재, 10/22 12:18·13:20 추기 | 【一部完了】【重要】PHPの脆弱性への予防措置に伴うメンテナンス実施のお知らせ |
| mixhost | “2026년 10월 22일 10시 18분경 PHP 수정 패키지 적용을 완료”. “PHP 버전 번호를 변경하지 않고 적용”, “고객께서 필요한 작업은 없습니다”. PHP 8.2 미만 이용자에게는 지원 기간 내의 버전(8.2 이상) 사용을 권장한다고 적혀 있다 | 10/22 | 【完了】PHPの重大な脆弱性への対応について |
| KAGOYA | 렌탈 서버의 PHP 8.2~8.5는 수정 버전 확인 후 순차 업데이트할 방침(대상 버전은 조정 중). 매니지드 전용·공유·WordPress 전용 서버는 영구 대응 방침을 조정 중이며, 잠정 대책으로 사이트 공개 중지나 접근 제한의 검토를 안내하고 있다 | 10/21 18:20 게재, 10/22 10:35 갱신 | PHPの脆弱性に関する当社サービスへの影響について |
| Zenlogic(IDCフロンティア) | 긴급 점검(10/21 22:00~10/22 18:00, 종료 시각은 앞뒤로 달라질 수 있음)에서 수정을 적용. PHP 5.3은 최신 버전으로 업데이트되어 되돌릴 수 없고, 7.4·8.1은 업데이트될 수 있다. 업데이트 후 표시·동작에 문제가 생기면 프로그램 측 대응이 필요하다고 적혀 있다 | 10/21 | 【ホスティング】緊急メンテナンス作業のお知らせ |
| ColorfulBox | “현재 이용 중인 PHP 버전을 유지한 채 서버 측에서 대책이 적용된 버전으로 업데이트를 완료”. “고객께서 직접 PHP 버전을 변경·전환하실 필요는 없습니다”라고 적혀 있다 | 10/22 | 【重要】PHPの脆弱性に対するセキュリティアップデート完了のお知らせ |
| お名前.com レンタルサーバー | “현재 이용 중인 PHP 버전을 유지한 채 당사에서 보안 패치를 적용”. 기본적으로 버전 변경은 불필요하지만 PHP 5.x·7.x에서는 변경이 필요할 수 있다고 적혀 있다. 파일 매니저·웹메일은 예방 차원에서 일시 중지 | 10/22 | 【重要】PHPの脆弱性への弊社対応について |
| CORESERVER(V2) | “제공 중인 모든 PHP 버전에서 취약점 대응을 완료”, “고객 측에서 PHP 버전 변경 등의 대응은 필요하지 않습니다”. 점검은 10/22 0:00~11:13, 완료되었다고 적혀 있다 | 10/21 게재(10/22 완료) | PHP脆弱性の対応(CORESERVER V2)【完了】 |
| XREA | “PHP 7.4 이상 버전(7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4 / 8.5)에서 취약점 대응을 완료”. 해당 버전 이용자는 버전 변경 등이 불필요. 7.4 미만에 대해서는 공지에 기재가 없다 | 10/21 게재(10/22 0:50 완료) | PHP脆弱性の対応(XREA)【完了】 |
| バリューサーバー | “PHP 7.4 이상 버전에서 취약점 대응을 완료”, 해당 버전 이용자는 버전 변경 등이 불필요하다고 적혀 있다 | 10/21 게재(10/22 0:50 완료) | PHP脆弱性の対応(VALUESERVER)【完了】 |
| ABLENET | “PHP에서 확인된 두 건의 취약점과 관련하여 당사 렌탈 서버 환경에 대해 보안 업데이트의 초기 대응을 실시”. 대상 버전이나 이용자의 작업은 공지에 적혀 있지 않다 | 10/22 13:04 | PHPの脆弱性に関するセキュリティアップデートの対応について |
| WebARENA(レンタルサーバー) | 10/22 시점에 공식 공지를 찾지 못했다(지원 문의로 확인 필요) | - | WebARENA お知らせ(2026年) |
공식 공지를 찾지 못했거나 열 수 없었던 회사는 표에 “확인하지 못함”, “찾지 못함”이라고 적었다. 거기에 실려 있지 않다는 것이 대응하지 않았다는 뜻은 아니다. 계약 중인 회사의 공지와 지원 창구에서 직접 확인하기 바란다.
바로 업데이트할 수 없는 동안의 완화책
PHP 공지에는 업데이트 전까지 공격 경로를 줄이는 설정이 실려 있다. 다만 공지 자체가 “안전해지는 것은 아니다”라고 명시하고 있다. 주요 항목은 다음과 같다.
- CVE-2026-109619용:
session.upload_progress.enabled=0을 php.ini, FPM 풀, 서버 설정에 넣고 모든 워커를 재시작한다(ini_set()이나 FPM의.user.ini로는 적용되지 않는다). PHP 8.5에서는fatal_error_backtraces=0도 설정한다. - CVE-2026-109618용: 애플리케이션에서 덮어쓸 수 없는 형태로
memory_limit=-1로 하고,post_max_size를 줄인다(업로드가 없으면 8M, 있으면 32M).RLIMIT_AS/RLIMIT_DATA로 대용하지 않는다.
영국 NCSC는 바로 업데이트도 완화도 할 수 없는 시스템은 오프라인으로 돌리는 것을 검토하고, 업데이트나 완화에 앞서 침해 흔적이 없는지 확인할 것을 권고하고 있다.
출처(2026-10-22에 확인)
- php.net: Security advisory: Critical remote code execution vulnerabilities, update now (2026-10-21)
- php.net: Upcoming Critical PHP Security Release (2026-10-20)
- php.net: PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 릴리스 공지
- GitHub: GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
- GitHub: GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- Docker Hub: 공식 이미지 php
- FrankenPHP 1.13.2 릴리스 노트
- Debian Security Tracker: CVE-2026-109618 / CVE-2026-109619
- Ubuntu: CVE-2026-109618 / CVE-2026-109619 / USN-8948-1 / USN-8948-2
- Red Hat: CVE-2026-109618 / CVE-2026-109619 (수정된 패키지 버전은 Red Hat의 VEX 데이터 기준)
- NCSC: Critical security issue affecting PHP
자주 묻는 질문
php -v가 수정 버전이면 php2shell(CVE-2026-109618 / 109619) 대책은 끝난 건가요?
끝났다고 단정할 수 없습니다. php -v는 CLI용 PHP의 버전만 보여 줍니다. 웹 요청을 처리하는 PHP-FPM이나 Apache의 mod_php는 별개의 바이너리, 별개의 패키지일 수 있습니다. php-fpm8.3 -v(RHEL 계열은 php-fpm -v)로 FPM 버전을 확인하거나, PHP_VERSION과 PHP_SAPI를 출력하는 임시 파일을 웹에서 열어 확인하고, 확인이 끝나면 바로 삭제하세요. 업데이트 후 FPM이나 Apache를 재시작하지 않았다면 옛 코드로 계속 동작하고 있을 수도 있습니다.
Docker의 php:8.3-fpm을 쓰고 있으면 php2shell은 수정된 건가요?
2026-10-22 시점에 Docker Hub의 php:8.3-fpm은 PHP 8.3.36으로 교체되었습니다. 하지만 로컬 이미지는 다시 pull하기 전까지 옛 버전 그대로이고, 실행 중인 컨테이너는 다시 만들기 전까지 옛 이미지로 계속 동작합니다. docker compose pull과 docker compose up -d(직접 빌드한다면 docker compose build --pull)를 실행한 뒤, 컨테이너 안에서 php -r 'echo PHP_VERSION;'를 실행해 8.3.36 이상인지 확인하세요. 8.3.30 같은 고정 태그는 직접 번호를 올리기 전까지 옛 버전 그대로입니다.
Ubuntu나 RHEL의 PHP는 버전이 8.3.6이나 8.0.30 그대로인데, php2shell의 영향을 받나요?
버전 숫자만으로는 판단할 수 없습니다. Ubuntu와 RHEL은 수정을 옛 버전에 이식하므로 숫자가 옛날 그대로여도 수정되어 있을 수 있습니다. 2026-10-22 시점에 Ubuntu 24.04는 php8.3 8.3.6-0ubuntu0.24.04.13, RHEL 9는 php 8.0.30-8.el9_8.1에서 수정되었습니다. 설치된 패키지 버전(apt-cache policy 또는 rpm -q)을 각 배포판 보안 트래커의 수정된 버전과 비교하세요. Ubuntu에서는 pro fix CVE-2026-109618, RHEL 계열에서는 dnf updateinfo list --cve CVE-2026-109618로도 확인할 수 있습니다.