최근 PHP 핵심 보안 이슈 (PHP2Shell 취약점)
최근 PHP 엔진 전반에 영향을 미치는 치명적인 원격 코드 실행(RCE) 취약점이 발표되어 세상이 떠들썩 함.
-
CVE 번호 :
CVE-2026-109618,CVE-2026-109619 -
일명 : PHP2Shell
-
핵심 내용:
-
메모리 처리 과정(
CVE-2026-109618) 및 이전 요청의 잔류 상태(CVE-2026-109619)를 악용하여, 공격자가 인증 없이도 웹 서버 권한으로 임의의 코드를 실행할 수 있는 취약점. -
Apache(
mod_php)나 PHP-FPM 환경에서 악성 요청이 들어올 때 주로 트리거되며, 실제 인터넷 상에서 공격에 악용(Exploited in the wild)되고 있는 것으로 보고.
-
어쩔 수 없이 PHP 7.4를 쓸 수 밖에 없는 상황이라면
-
공식 권고사항에 따라 취약점 악용 경로 중 하나가 될 수 있는 session.upload_progress.enabled 기능을 끄기.
-
사용자가 대용량 파일을 업로드할 때, 업로드 진행 상태(예: 0%에서 100%로 올라가는 프로그레스 바)를 PHP 세션에 기록하여 화면에 보여주기 위한 전용 기능
-
이 기능 자체가 프로세스를 물고 있어야 하므로, exploit에 취약할 수 밖에 없었던 것은 아닐까 추측.
-
PHP 환경 환경설정 수정
-
PHP의 설정 파일php.ini(기본경로 /etc/php.ini) 을 보면, 아래처럼 주석처리 되어 있고 "On"으로 기본값이 정의 되어 있을 것임.
; session.upload_progress.enabled = On
-
아래 처럼 주석 ";" 을 지우고, 설정을 "0" 으로 비활성화한 뒤, PHP-FPM 및 Apache를 재시작. (숫자 0으로 해도 되고 문자 Off로 해도 되지만, 안전하게 0을 추천)
session.upload_progress.enabled = 0
- PHP-FPM 과 Apache 재시작
# sudo systemctl restart php-fpm
# sudo systemctl restart httpd
최대한 빨리 PHP 7을 탈출하기로...