본문 바로가기

이슈(보안)

PHP 치명적 취약점(CVE-2026-109618, CVE-2026-109619) 대응 및 Nginx·PHP-FPM 패치

728x90
반응형

PHP 치명적 취약점(CVE-2026-109618, CVE-2026-109619) 대응 및 Nginx·PHP-FPM 패치

1. 작업 개요

2026년 10월 21일, PHP에서 원격 코드 실행(Remote Code Execution, RCE)으로 이어질 수 있는 치명적인 보안 취약점 2건이 공개되었습니다.

 

이번 취약점은 CVE-2026-109618, CVE-2026-109619로 식별되며 PHP 애플리케이션이 실행되는 서버에 영향을 줄 수 있습니다. 공격자가 특수하게 조작된 네트워크 요청을 전달할 경우 대상 시스템에서 임의의 코드를 실행할 수 있어 신속한 보안 패치 적용이 필요합니다.

  • 부적절한 예외 상황 처리(Improper Handling of Exceptional Conditions, CVE-2026-109618) 취약점
  • 해제 후 사용(Use After Free, CVE-2026-109619) 취약점

PHP 공식 보안 공지와 Ubuntu 보안 공지에서도 해당 취약점에 대한 보안 업데이트를 권고하고 있습니다.

  • 취약점 식별자: CVE-2026-109618, CVE-2026-109619
  • 취약점 유형: 원격 코드 실행(RCE)
  • 심각도: Critical
  • 대응 방안: 운영체제 저장소에서 제공하는 보안 패키지 업데이트 적용 및 관련 서비스 재시작

출처-https://knvd.krcert.or.kr/info/vuln/notice/detail?id=6ad8c80eb5290478048f38cf

2. 작업 전 확인 사항

업데이트 작업 전 현재 서비스 상태와 설치된 패키지 정보를 확인합니다.

# Nginx 버전 확인
nginx -v

# 서비스 상태 확인
systemctl status nginx
# PHP-FPM 버전 확인
php-fpm8.3 -v

# 설치된 PHP 패키지 확인
dpkg -l | grep 'php'

# 서비스 상태 확인
systemctl status php8.3-fpm

PHP 8.5 환경에서는 php-fpm8.3 대신 php-fpm8.5를 사용합니다.

# PHP-FPM 버전 확인
php-fpm8.5 -v

# 설치된 PHP 패키지 확인
dpkg -l | grep 'php'

# 서비스 상태 확인
systemctl status php8.5-fpm

운영 서버에서 작업하는 경우에는 사전에 서비스 영향도를 확인하고 필요한 설정 파일 백업 및 점검 시간을 확보합니다.

3. Nginx 및 PHP-FPM 8.3 업데이트

3-1. Nginx 패키지 업데이트

패키지 목록을 갱신한 뒤 기존에 설치된 Nginx 패키지만 업데이트합니다.

curl -fsSL https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
  | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
  | sudo tee /etc/apt/sources.list.d/nginx.list
sudo apt update

sudo apt --only-upgrade install -y nginx
--only-upgrade 옵션은 해당 패키지가 설치되어 있는 경우에만 업데이트하도록 지정합니다.

3-2. PHP-FPM 8.3 관련 패키지 업데이트

먼저 설치된 PHP 패키지 목록을 확인합니다.

dpkg -l | grep 'php' | awk '{print $2}'

PHP 8.3 관련 패키지만 업데이트합니다.

sudo apt install -y software-properties-common apt-transport-https

sudo add-apt-repository -y ppa:ondrej/php

sudo apt update
sudo apt --only-upgrade install -y \
  $(dpkg -l | grep 'php8.3-' | awk '{print $2}')

PHP-FPM뿐 아니라 CLI 및 기타 PHP 모듈도 함께 업데이트할 수 있도록 실제 설치된 php8.3- 패키지를 대상으로 진행합니다.

3-3. 설정 파일 문법 검사

서비스를 재시작하기 전에 Nginx와 PHP-FPM 설정을 검사합니다.

nginx -t
php-fpm8.3 -t

정상이라면 각 명령어에서 설정 파일 검사 성공 메시지를 확인할 수 있습니다.

설정 오류가 발생하면 서비스 재시작을 진행하지 말고 오류 메시지에 표시된 파일과 설정 항목을 먼저 확인합니다.

3-5. 서비스 재시작 및 버전 확인

설정 검사에 이상이 없는 경우 서비스를 재시작합니다.

sudo systemctl restart nginx php8.3-fpm

업데이트된 버전을 확인합니다.

nginx -v
php-fpm8.3 -v

서비스 상태도 함께 점검합니다.

systemctl status nginx --no-pager
systemctl status php8.3-fpm --no-pager
728x90

4. Nginx 설정 오류 발생 시 조치

Nginx 설정 검사 과정에서 다음과 같이 HTTP/2 관련 설정 오류가 발생할 수 있습니다.

listen 443 ssl http2;

사용 중인 Nginx 버전에서 해당 구문이 더 이상 권장되지 않거나 지원되지 않는 경우 다음과 같이 http2 on; 설정으로 분리할 수 있습니다.

listen 443 ssl;
http2 on;

기존 작업 절차에서 사용한 일괄 변경 명령어는 다음과 같습니다.

sudo sed -i \
  's/listen 443 ssl http2;/listen 443 ssl;\n    http2 on;/g' \
  /etc/nginx/conf.d/*.conf
주의: 위 명령어는 지정한 설정 파일을 직접 수정합니다. 실행 전 대상 파일을 백업하고 변경 대상과 기존 설정을 확인해야 합니다. 모든 설정에 일괄 적용하기보다는 오류가 확인된 파일에 한정하여 변경하는 것을 권장합니다.

변경 후에는 반드시 설정 검사를 수행합니다.

sudo nginx -t

검사에 성공한 경우에만 서비스를 재시작합니다.

sudo systemctl restart nginx

PHP-FPM 설정 오류가 발생한 경우에는 Nginx 설정을 임의로 변경하지 말고 PHP-FPM의 설정 파일과 오류 로그를 별도로 확인합니다.

5. PHP-FPM 8.5 업데이트

PHP 8.5를 사용하는 서버도 동일한 절차로 업데이트를 진행합니다.

5-1. 설치된 PHP 패키지 확인

dpkg -l | grep 'php' | awk '{print $2}'

5-2. PHP 8.5 관련 패키지 업데이트

sudo apt install -y software-properties-common apt-transport-https

sudo add-apt-repository -y ppa:ondrej/php

sudo apt update
sudo apt --only-upgrade install -y \
  $(dpkg -l | grep 'php8.5-' | awk '{print $2}')

5-3. 설정 검사

php-fpm8.5 -t
nginx -t

5-4. 서비스 재시작

sudo systemctl restart nginx php8.5-fpm

5-5. 업데이트 버전 및 서비스 상태 확인

nginx -v
php-fpm8.5 -v
systemctl status nginx --no-pager
systemctl status php8.5-fpm --no-pager

 

이번 PHP 보안 취약점은 원격 코드 실행으로 이어질 수 있는 심각한 문제인 만큼 PHP-FPM을 사용하는 서버는 운영체제 및 패키지 저장소에서 제공하는 보안 업데이트를 신속하게 적용해야 합니다.

업데이트 과정에서는 Nginx와 PHP-FPM의 설정 검사를 선행하고 서비스 재시작 후 패키지 버전 및 애플리케이션 동작을 확인하는 것이 중요합니다.

운영 환경에서는 서버별 PHP 버전과 설치된 패키지 구성이 다를 수 있으므로 일괄 작업 전 대상 서버의 환경을 확인하고 순차적으로 패치를 진행하는 것을 권장합니다.

 

참고URL

- 한국인터넷진흥원(KISA) : PHP 제품 보안 업데이트 권고

- PHP 공식 홈페이지 : Security advisory: Critical remote code execution vulnerabilities, update now

- Canonical Ubuntu : php2shell (CVE-2026-109618 and CVE-2026-109619) – PHP critical vulnerability fixes available

- Ubuntu Security Notice : USN-8948-1: PHP vulnerabilities

 

728x90
반응형