PHP의 메모리 부족(OOM) 처리 경로에서 발견된 결함 CVE-2026-109618이 인증 없는 원격 코드 실행(RCE)로 이어질 수 있다고 PHP 개발팀이 보안 권고에서 확인했습니다. 이 취약점은 CISA KEV 카탈로그에 등재되어 있고 랜섬웨어 공격에 사용된 것으로 표시되어 있어, 원론적인 위험 논의가 아니라 실제 악용이 확인된 사안입니다.
개요

PHP는 요청 처리 중 메모리 할당에 실패하면 longjmp()으로 현재 컨텍스트를 빠져나와 해당 요청을 중단합니다. CVE-2026-109618은 바로 이 OOM 처리 경로에서 내부 요청 데이터가 완전히 초기화되기 전 상태에 접근 가능한 상황을 찌르는 결함입니다. GitHub 보안 어드바이저리 GHSA-w8hw-w9fx-j79w는 이 상태에서의 할당 실패가 메모리 손상으로 이어질 수 있음을 요약하고 있습니다.
CVE 레코드는 CVE List V5에서 PUBLISHED 상태로 확인되며, 채번 주체는 PHP로 기록되어 있습니다. 같은 레코드는 이 결함을 CVSS 4.0 기준 9.2, CRITICAL 등급으로 평가합니다. PHP 개발팀은 이번 결함을 RCE 취약점으로 다루며 "지금 업데이트하라"는 표현의 긴급 권고를 함께 발표했습니다.
이 사안의 성격을 가르는 지점은 두 가지입니다. 첫째, CISA는 이 결함이 인증 없이 원격 코드 실행을 허용한다고 명시해, 공격자가 로그인 상태나 관리 권한을 확보해야 한다는 전제 없이 위험이 성립합니다. 둘째, 이론적 위험이 아니라 KEV 등재와 랜섬웨어 악용 표시라는 실측 근거가 붙었다는 점입니다.
영향 범위
CVE 레코드가 명시하는 영향 범위와 수정 버전은 다음과 같습니다.
- PHP 8.2.* 계열: 8.2.35 미만
- PHP 8.3.* 계열: 8.3.36 미만
- PHP 8.4.* 계열: 8.4.27 미만
- PHP 8.5.* 계열: 8.5.12 미만
각 계열은 나열된 수정 버전 이상으로 업데이트해야 합니다. PHP 공식 권고도 같은 결함을 RCE 취약점으로 올려 업데이트를 요구하고 있으므로, 자산 점검의 기준선은 레코드에 명시된 계열에서 수정 버전 미만의 PHP 런타임을 남겨두고 있는지를 확인하는 것입니다.
한계: 확인된 인용 자료에는 계열별 수정 버전 경계만 나타나 있고, 실제 악용이 확인된 대상이나 버전별 악용 편차는 포함되어 있지 않습니다. 따라서 패치 대상은 CVE 레코드가 제시한 영향 범위로만 판별하며, 위 네 계열의 영향 범위 밖 버전까지 패치 대상으로 끌어올 근거는 이번 자료에 없습니다. KEV 등재와 랜섬웨어 사용 표시는 이렇게 영향 범위로 판별된 자산의 패치 순서를 앞당기는 근거로만 적용합니다.
기술적 분석
메커니즘은 벤더 설명을 순서대로 읽으면 명쾌합니다. PHP는 OOM 오류에서 longjmp()으로 현재 컨텍스트를 종료하고 요청 처리를 중단합니다. 문제는 일부 컨텍스트에서 요청 메모리가 완전히 초기화되기 전에 잠깐 접근 가능한 상태가 된다는 점입니다. 이 구간에 메모리 할당 실패가 겹치면 부분만 채워진 내부 요청 데이터가 그대로 남아 메모리 손상을 만들고, 그 손상된 상태가 임의 코드 실행으로 연결될 수 있습니다.
CISA는 이 OOM 손상 결함이 인증 없는 원격 코드 실행을 허용한다고 기록합니다. 즉 위험 평가의 출발점은 "누가 로그인하느냐"가 아니라, 부분 초기화 상태의 요청 메모리와 할당 실패가 같은 흐름 안에서 만나는지입니다. 벤더가 OOM 처리라는 예외 경로 자체를 취약점으로 지목한 것이 이번 결함의 핵심이며, 트리거의 정밀한 조건이나 악용 난이도는 확인된 근거에 나타나 있지 않습니다.
악용 현황: KEV 등재와 랜섬웨어
CISA는 KEV 카탈로그에서 이 결함을 "PHP Memory Corruption Vulnerability"로 등록하고, OOM 손상으로 미인증 원격 코드 실행이 가능하다는 점과 함께 랜섬웨어 공격에 사용된 것으로 알려졌다는 표시를 붙였습니다. KEV 등재는 벤더의 위험 평가가 아니라 실사용 증거에 가까운 신호이며, 영향 범위로 판별된 자산의 패치 우선순위를 "계획"에서 "즉시 실행"으로 옮기는 근거로 충분합니다.
여기서는 확인된 것과 확인되지 않은 것을 분명히 분리할 필요가 있습니다. 실제 악용과 랜섬웨어 연계는 사실로 확인됐지만, 이번 증거 수집 범위에서는 공개 PoC의 존재도, 독립 연구기관의 상세 기술 분석도, 악용된 시점·대상·기법 세부도 확인되지 않았습니다. PoC가 확인되지 않았다는 사정은 위험을 낮춰 해석할 근거가 되지 않습니다. KEV 등재와 랜섬웨어 표시만으로도 이미 실악용 전제가 성립해 있고, 이 영역의 부재는 검증 관점의 한계로 남겨두어야 합니다.
대응 방안
자료가 확인된 범위에서의 대응은 지금 바로 실행할 조치와 계속 지켜볼 항목으로 나누어 정리합니다.
즉시 실행할 조치
- 버전 확인과 즉시 업데이트: 위 계열의 수정 버전(8.2.35, 8.3.36, 8.4.27, 8.5.12) 미만 런타임을 우선 찾아 PHP 공식 권고대로 최신 안전 버전으로 올립니다. PHP 개발팀의 권고 수준이 "지금 업데이트"이므로 대기 순번을 두지 않는 것이 합리적입니다.
- 패치 순위 재조정: KEV 등재와 랜섬웨어 악용 표시는 CVE 레코드의 영향 범위(8.2.35·8.3.36·8.4.27·8.5.12 미만)에 해당하는 PHP 워크로드를 최우선 순위에 배치하는 근거로 적용합니다. 영향 범위로 제시된 계열 밖 자산까지 같은 급으로 취급할 근거는 이번 자료에 없습니다.
지속적으로 확인할 항목
- 침해 징후 확인: 정확한 IOC나 탐지 시그니처는 이번 증거에서 확인되지 않았습니다. 확인 전에는 임의의 탐지 규칙이나 IOC 목록을 근거로 삼지 않습니다.
- 후속 자료 확인: 악용 사례의 세부 침해 지표와 기술적 세부사항에 대해서는 PHP 벤더와 CISA의 후속 자료를 계속 확인하며, 확인되는 대로 점검 범위를 보완합니다.
정리
CVE-2026-109618은 OOM 처리 경로에서 부분 초기화된 요청 메모리와 할당 실패가 만나 메모리 손상을 만들고, 그 상태가 인증 없는 원격 코드 실행으로 이어질 수 있는 결함입니다. CVE 레코드가 제시한 영향 범위는 위 네 계열의 수정 버전 미만이며, CISA KEV 등재와 랜섬웨어 악용 표시로 실제 악용이 확인되었습니다. 결국 핵심은 영향 범위 내 PHP 런타임을 남아두지 않고 즉시 업데이트하는 것이고, 남은 쟁점은 확인되지 않은 악용 세부와 IOC를 후속 자료로 채워가는 검증 과제입니다.
참고자료
- CVE-2026-109618: RCE via OOM corruption
- Security advisory: Critical remote code execution vulnerabilities, update now
- GHSA-w8hw-w9fx-j79w: RCE via OOM corruption
- Known Exploited Vulnerabilities Catalog: CVE-2026-109618 (PHP Memory Corruption Vulnerability)
함께 읽으면 좋은 글
- CVE-2026-91153: WordPress Everest Forms(AI 폼 빌더) 민감정보 노출 점검
- CVE-2026-118546: Drupal AI 모듈 XSS(SA-CONTRIB-2026-267) 점검
- CVE-2026-116535: 워드프레스 SEOPress 저장형 XSS, CVSS 6.4와 10.3 이하 범위
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!