Cyber Threat Intelligence
PHP 취약점 분석: CVE-2026-109618, CVE-2026-109619
✅ 보고서 제목:
PHP 취약점 분석: CVE-2026-109618, CVE-2026-109619
✅ 보고서 요약
📌 PHP란?
- PHP는 웹 애플리케이션 개발에 사용되는 서버 측 스크립트 언어입니다. 서버에서 사용자의 요청을 처리하고 데이터베이스와 연동해 웹페이지를 생성, 온라인 쇼핑몰과 블로그, 워드프레스(WordPress) 같은 콘텐츠 관리 시스템에 주로 활용됩니다.
📌 취약점 개요
- 2026년 10월 20일, PHP의 Remote Code Execution 취약점인 CVE-2026-109618과 CVE-2026-109619가 공개되었습니다.
- 해당 취약점은 하단에 나열된 버전의 제품에서 취약한 것으로 밝혀졌습니다.
- PHP 8.5 계열 < 8.5.12
- PHP 8.4 계열 < 8.4.27
- PHP 8.3 계열 < 8.3.36
- PHP 8.2 계열 < 8.2.35
- PHP 8.1 / 8.0 / 7.4 계열 (전 버전 취약)
- PHP 5.4 ~ 7.3 계열 (전 버전 취약, 공격 경로별 상이)
- 2026년 10월 20일, 두 취약점 모두 CVSS v4.0: 9.2 Critical 취약점으로 발표되었으며, 조치 방안을 확인하여 빠르게 대응할 것을 권장합니다.
📌 취약점 발생 원인
- 해당 취약점들은 PHP가 메모리 부족이나 치명적 오류로 요청 처리를 비정상적으로 중단할 때 요청 메모리가 초기화되지 않거나 이미 해제된 상태로 남아 발생하는 원격 코드 실행(Remote Code Execution) 취약점입니다.
- CVE-2026-109618
- PHP는 메모리 할당이 실패하면 zend_bailout()을 통해 실행 흐름을 비정상적으로 종료하며, 이 과정에서 일부 자료구조의 초기화가 완료되지 않은 상태로 남을 수 있습니다.
- 공격자는 multipart 요청을 통해 memory_limit에 도달하도록 유도하여 이러한 상황을 반복적으로 발생시킬 수 있습니다.
- 요청 종료 과정에서는 초기화가 완료되지 않은 자료구조를 순회하며 메모리를 해제할 수 있습니다. 이때 유효하지 않은 항목을 정상적인 데이터로 처리하면 메모리 손상이 발생할 수 있습니다.
- Apache mod_php 환경에서는 요청 초기화에 실패하더라도 종료 절차가 수행되므로, 애플리케이션 코드가 실행되기 전에도 취약점이 발생할 수 있습니다.
- CVE-2026-109619
- PHP는 HTTP 요청 처리 과정에서 세션, 오류 처리, 객체 및 확장 모듈의 전역 상태에 요청별 힙 메모리를 참조하는 포인터를 저장할 수 있습니다.
- 메모리 부족(OOM)이나 치명적인 오류로 요청이 중단되면 포인터 정리 절차가 생략되어, 요청 메모리가 해제된 이후에도 전역 상태에 유효하지 않은 포인터가 남을 수 있습니다.
- 이후 동일 PHP 워커가 새로운 HTTP 요청을 처리할 때, 정상적인 초기화가 완료되기 전에 해당 전역 상태를 참조하면서 Use-After-Free가 발생할 수 있습니다.
- 대표적으로 Session Upload Progress 처리 과정에서는 PS(id) 또는 PS(http_session_vars)가 해제된 메모리를 참조하는 상태에서 호출되어 메모리 손상이나 정보 노출이 발생할 수 있습니다.
- 오류 백트레이스 처리 과정에서는 EG(last_fatal_error_backtrace)가 해제된 메모리를 참조하는 상태에서 호출되어 메모리 손상이 발생할 수 있습니다. 이 사례는 PHP 8.5에서 fatal_error_backtraces 설정이 활성화된 경우에 해당합니다.
✅ 위협 탐지 권장 사항 및 조치 방안:
- 위협탐지 룰을 업데이트하고 지속적인 모니터링 및 제조사에서 제공하는 보안 업데이트를 적용합니다.
- PHP 8.5 계열 ≥ 8.5.12
- PHP 8.4 계열 ≥ 8.4.27
- PHP 8.3 계열 ≥ 8.3.36
- PHP 8.2 계열 ≥ 8.2.35
- PHP 8.1 / 8.0 / 7.4 버전은 공식 패치 릴리스가 제공되지 않아 PHP 보안팀에서 제공하는 최소 소스 백포트(Backport) 브랜치를 이용해 수동 직접 빌드 후 적용해야 합니다.
- PHP 5.4 ~ 7.3 이하 EOL 구버전은 공식 대응 패치가 존재하지 않습니다. 최신 PHP 버전으로의 업그레이드를 권장합니다.
- 즉각적인 패치가 불가능할 경우 하단의 조치 방안에 따라 조치할 것을 권장합니다.
- PHP Session Upload Progress 기능을 비활성화: session.upload_progress.enabled = 0 설정
- PHP 스크립트의 메모리 상한 해제: memory_limit = -1 설정
- 본 조치는 OOM 발생 가능성을 낮추기 위한 임시 대응으로, 취약점 자체에 대한 근본적인 완화 조치는 아닙니다.
- 메모리 사용 상한을 높이거나 해제할 경우 메모리 고갈 위험이 있으므로, 운영 환경을 고려하여 적절한 제한값을 적용할 것을 권고합니다.
- 취약 서비스의 패치가 완료될 때까지 PHP 기반 인터넷 공개 서비스의 외부 노출을 중단하고, 내부망 또는 VPN 등을 통해 인가된 사용자와 네트워크에서만 접근할 수 있도록 제한할 것을 권고합니다.
🧑💻 보고서 작성자: S2W TALON (2026-10-22)
👉 보고서 전문 문의하기: https://s2w.inc/ko/contact