2026-10-22
보안 공지 · 긴급PHP 자체에서 로그인 없이 서버 명령을 실행할 수 있는 긴급(Critical) 등급 취약점 2건이 공개되었습니다. 해외 보안업체들이 이미 이 취약점을 노린 공격 시도를 관측하고 있습니다.
PHP 8.2~8.5 사용 고객은 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 이상으로 업데이트해 주세요. PHP 8.1 이하 사용 고객은 먼저 운영체제 배포판의 보안 업데이트 제공 여부를 확인하시고, 제공되지 않는 경우 임시조치와 웹방화벽을 함께 적용해 주시기 바랍니다.
관련 CVE: CVE-2026-109618, CVE-2026-109619
1. 개요
안녕하세요, 호스트센터입니다.
2026년 10월 21일(수), PHP 보안팀이 PHP 엔진의 원격 코드 실행 취약점 2건(일명 “PHP2Shell”)을 발표하고 이를 수정한 보안 업데이트를 배포했습니다. 공격자는 이 취약점을 이용해 별도의 인증 없이 웹서버 권한으로 서버에 명령을 내릴 수 있으며, 홈페이지 변조, 웹셸·악성코드 설치, 데이터베이스 유출 등의 피해로 이어질 수 있습니다.
CVE 번호 유형 위험도(CVSS v4.0) CVE-2026-109618 메모리 부족(OOM) 처리 오류로 인한 메모리 손상 → 원격 코드 실행 9.2 (Critical) CVE-2026-109619 이전 요청의 잔존 상태 재사용(Use-After-Free) → 원격 코드 실행 9.2 (Critical) 이번 취약점은 WordPress, 그누보드, XE 같은 홈페이지 프로그램이 아닌 서버에 설치된 PHP 자체의 문제입니다. 홈페이지 프로그램과 플러그인을 최신으로 관리하고 있더라도 PHP를 업데이트하지 않았다면 영향을 받습니다.
2. 영향 대상(범위)
PHP로 웹 요청을 처리하는 서버라면 PHP-FPM, Apache mod_php, php-cgi, LiteSpeed, FrankenPHP 등 실행 방식과 관계없이 모두 점검 대상입니다. 이 중 Apache mod_php 환경은 홈페이지 프로그램이 실행되기도 전에 공격이 성립할 수 있어 PHP 보안팀이 가장 위험한 구성으로 꼽았으니, 우선적으로 조치해 주세요.
PHP 공식 발표는 현재 지원 중인 8.2~8.5 버전을 기준으로 하며, 지원이 끝난 8.1 이하 버전도 영향을 받는 것으로 보고 대응해야 합니다. 버전별 현황은 다음과 같습니다.
PHP 버전 취약 여부 안전한 버전 PHP 8.5 8.5.11 이하 취약 8.5.12 이상 PHP 8.4 8.4.26 이하 취약 8.4.27 이상 PHP 8.3 8.3.35 이하 취약 8.3.36 이상 PHP 8.2 8.2.34 이하 취약 8.2.35 이상 PHP 8.1 이하 영향 있음으로 간주 PHP 정식 업데이트 없음
배포판·LTS 보안 패키지 확인3. 조치 방법
보안 업데이트 적용 (PHP 8.2~8.5)
- 1
현재 PHP 버전 확인
php -v웹서버와 명령줄의 PHP가 서로 다를 수 있으니, 여러 버전을 함께 설치한 서버는 웹사이트에 실제로 연결된 버전(PHP-FPM 등)도 확인해 주세요.
- 2
패치 버전으로 업데이트
# Rocky Linux / AlmaLinux 등 RHEL 계열 sudo dnf clean metadata sudo dnf upgrade 'php*' # Ubuntu / Debian 계열 sudo apt update && sudo apt install --only-upgrade 'php*'
- RHEL·Rocky Linux 등은 배포판마다 수정 패키지가 나오는 시점이 달라, 업데이트를 실행해도 새 패키지가 조회되지 않을 수 있습니다. 이 경우 아직 수정본이 배포되지 않은 것이므로 아래 임시조치와 웹방화벽을 함께 적용하고, 배포판 보안 공지를 확인해 다시 업데이트해 주세요.
- CentOS 7은
dnf대신yum을 사용하며, 운영체제 지원이 종료되어 보안 패키지가 제공되지 않습니다. 아래 'PHP 8.1 이하를 사용 중인 경우'에 따라 대응해 주세요.- Remi 저장소, Ondřej PPA 등 외부 저장소로 PHP를 설치하셨다면 해당 저장소의 수정본 제공 여부를 확인해 주세요.
배포판 공식 패키지는 버전 번호를 그대로 둔 채 보안 수정만 반영(백포트)하는 경우가 많아, 업데이트 후에도 버전이 표의 숫자와 다르게 보일 수 있습니다. 이때는 배포판 보안 공지나 패키지 변경 이력에 CVE-2026-109618, CVE-2026-109619가 포함되어 있는지 확인해 주세요.
# 패키지 변경 이력에서 CVE 확인 예시 rpm -q --changelog php-common | grep -E 'CVE-2026-10961[89]' # RHEL 계열 zcat /usr/share/doc/php*/changelog.Debian.gz | grep -E 'CVE-2026-10961[89]' # Debian 계열- 3
웹서비스 재시작
업데이트는 PHP를 실행하는 서비스를 재시작해야 반영됩니다. 사용 중인 구성에 맞는 서비스만 재시작하면 되며(Nginx와 PHP-FPM을 함께 쓰는 경우 PHP-FPM만 재시작), 서버 전체를 재부팅할 필요는 없습니다. 재시작 중 수 초간 접속이 지연될 수 있습니다.
sudo systemctl restart php-fpm # PHP-FPM (Ubuntu/Debian은 php8.x-fpm) sudo systemctl restart httpd # Apache mod_php (Ubuntu/Debian은 apache2) sudo systemctl restart lsws # LiteSpeed 사용 시PHP 8.1 이하를 사용 중인 경우
PHP 8.1 이하 버전은 PHP 공식 지원이 끝나 PHP 프로젝트의 정식 업데이트 버전이 나오지 않습니다(7.4·8.0·8.1은 직접 빌드하는 경우를 위한 최소 소스 패치만 공개). 다만 Ubuntu 22.04의 PHP 8.1처럼 운영체제 배포판이 자체 보안 패키지를 제공하는 경우가 있으니, 다음 순서로 대응해 주시기 바랍니다.
- 사용 중인 운영체제 배포판이나 장기지원(LTS) 업체가 보안 패키지를 제공하면 위 업데이트 방법으로 우선 적용합니다.
- 보안 패키지가 없다면 아래 임시조치와 웹방화벽을 함께 적용해 위험을 줄입니다.
- 근본적인 해결을 위해 PHP 8.3 이상으로의 업그레이드 일정을 마련합니다. PHP 8.2도 2026년 12월 31일에 보안 지원이 종료됩니다.
즉시 업데이트가 어려운 경우의 임시조치
PHP 보안팀은 바로 업데이트할 수 없는 서버에 아래 설정을 임시로 적용하도록 권고하고 있습니다.
php.ini또는 PHP-FPM 풀·Apache 설정에 넣되, 특히memory_limit은 홈페이지 프로그램이 덮어쓸 수 없도록php_admin_value로 지정하는 것을 권장합니다. 적용 후에는 PHP-FPM·Apache 등 PHP를 실행하는 서비스를 재시작해 모든 프로세스에 반영해 주세요.php.ini 예시
session.upload_progress.enabled = 0 memory_limit = -1 post_max_size = 8M ; 파일 업로드를 쓰는 사이트는 32M fatal_error_backtraces = 0 ; PHP 8.5만 해당PHP-FPM 풀 설정 예시 (RHEL 계열 /etc/php-fpm.d/www.conf, Ubuntu·Debian /etc/php/8.x/fpm/pool.d/www.conf)
php_admin_flag[session.upload_progress.enabled] = off php_admin_value[memory_limit] = -1 php_admin_value[post_max_size] = 8MApache mod_php 설정 예시 (VirtualHost 등 서버 설정)
php_admin_flag session.upload_progress.enabled off php_admin_value memory_limit -1 php_admin_value post_max_size 8M임시조치는 알려진 공격 경로 일부만 막을 뿐, 취약점 자체를 해결하지는 않습니다. 적용 전 다음 사항을 꼭 확인해 주세요.
session.upload_progress.enabled = 0은 파일 업로드 진행률 표시 기능을 끕니다. 대부분의 홈페이지와 WordPress는 이 기능을 쓰지 않아 영향이 거의 없으며, PHP 보안팀은 이 기능을 쓰지 않는다면 보안 업데이트 후에도 계속 꺼 둘 것을 권장합니다.memory_limit = -1은 PHP 메모리 사용 한도를 해제합니다. php.ini에만 넣으면 PHP-FPM 풀 설정, .htaccess, 홈페이지 프로그램(ini_set) 등에서 메모리 한도를 다시 지정해 효과가 사라질 수 있으니 이런 설정이 남아 있지 않은지 확인해 주세요. 스크립트 하나가 서버 메모리를 모두 차지할 수 있으므로 메모리 사용량을 계속 지켜봐 주시고, 보안 업데이트를 마친 뒤에는 원래 값으로 돌려놓아야 합니다.post_max_size는 한 번에 받을 수 있는 요청 크기입니다. 파일 업로드가 없는 사이트는 8M, 업로드가 필요한 사이트는 32M으로 낮추고,upload_max_filesize는 이보다 작게 맞춰 주세요. 이보다 큰 파일을 올려야 하는 사이트는 업로드가 제한될 수 있습니다.fatal_error_backtraces = 0은 PHP 8.5에만 있는 설정으로, 실제 공격이 검증된 경로 중 하나를 막습니다. PHP 8.4 이하에서는 넣지 않아도 됩니다.- 홈페이지 소스 코드의
ini_set()이나.user.ini로 설정하면 효과가 없습니다.웹방화벽(WAF)으로 추가 보호
위 임시조치는 지금까지 알려진 공격 방식 일부에만 대응합니다. 특히 보안 패키지를 받을 수 없는 PHP 8.1 이하 서버나 배포판 수정본이 아직 나오지 않은 서버는 임시조치만으로 안전을 보장하기 어려우므로, 웹방화벽을 함께 사용하시기를 적극 권해 드립니다. 웹방화벽이 웹서버 앞단에서 악성 요청을 미리 걸러 주기 때문에, PHP 버전을 올리기 전까지 공격에 노출되는 위험을 크게 줄일 수 있습니다.
- 이미 호스트센터 웹방화벽을 사용 중이라면: 고객님께서 따로 하실 일은 없습니다. 이번 취약점을 탐지하는 보안 룰이 나오면 당사가 바로 반영해 드립니다.
- 아직 웹방화벽을 사용하지 않는다면: 기술문의(02-6925-5044, 보안관제 내선 4번)나 온라인 기술문의로 도입을 요청해 주세요. 상담 시 도메인 주소, 웹서버(원본) IP, 사용 중인 SSL 인증서를 함께 알려 주시면 더 빠르게 적용해 드릴 수 있습니다.
4. 문의처
버전 확인, 임시조치 설정, 업데이트 대행, 웹방화벽 신청 등 도움이 필요하시면 언제든 연락해 주세요.
기술문의
02-6925-5044
- 서버 및 IDC내선 1번
- 클라우드내선 2번
- 보안관제내선 4번
요금문의
IDC 영업문의
클라우드 영업문의
온라인 기술문의
마이페이지에 로그인한 뒤 기술문의를 접수하시면 담당 엔지니어가 확인 후 답변드립니다.
기술문의 접수하기참고 자료
PHP 공식
- PHP 공식 보안 권고 – 업데이트 방법 및 임시조치 (php.net, 2026. 10. 21.)
- CVE-2026-109618 상세 권고 – RCE via OOM corruption (GitHub)
- CVE-2026-109619 상세 권고 – RCE via stale global state (GitHub)
- CVE-2026-109618 (cve.org) · CVE-2026-109619 (cve.org)
- PHP 버전별 지원 기간 (php.net)
운영체제 배포판별 보안 정보
- Red Hat 보안 공지 (RHSB-2026-013)
- Rocky Linux 보안 업데이트 목록 (Errata)
- AlmaLinux 패치 안내
- Ubuntu 보안 정보 (버전별 수정 패키지)
- Debian 보안 추적기 (버전별 수정 패키지)
국내
호스트센터는 고객 여러분의 안전한 서비스 운영을 위해 최선을 다하겠습니다. 감사합니다.