본문 바로가기

IT 이모저모

PHP2Shell 긴급 대응 — PHP 엔진을 뚫는 RCE 취약점(CVE-2026-109618·109619) 총정리


PHP로 만든 웹사이트라면, 지금 버전부터 확인하세요

 

2026년 10월 21일, 전 세계 웹의 상당수를 떠받치는 PHP 실행 엔진 자체에서 치명적인 원격 코드 실행(RCE) 취약점 2건이 공개됐습니다. PHP2Shell로 명명된 이 취약점(CVE-2026-109618·109619)은 인증 없이 서버를 장악할 수 있어 위험도가 매우 높습니다.

특정 플러그인이 아니라 PHP 엔진의 문제라, WordPress·Drupal 등 PHP 기반 서비스 전반이 영향권입니다. 무엇이 문제고, 어떻게 대응해야 하는지 정리했습니다.

 

개요

1. 무슨 취약점인가

PHP2Shell 개요

PHP2Shell 개요 [01]

 

구분내용
공개일2026년 10월 21일
위험도CVSS 4.0 기준 9.2 (Critical) 2건
영향인증 없는 원격 코드 실행(RCE)
범위PHP 실행 엔진 자체 (앱·플러그인 무관)

 

가장 중요한 특징은 '내 코드에 버그가 없어도 뚫릴 수 있다'는 점입니다. 취약한 PHP가 외부 요청을 처리하는 실행 경로만 있으면 공격에 노출됩니다. 특히 Apache mod_php 환경에서 인증 없는 RCE가 검증됐습니다.

 

🚨 이미 공격이 관측됐습니다

Cloudflare 등은 패치 공개 전부터 실제 공격 트래픽을 관측했고,
공격자가 탐지를 피하려 페이로드를 변형하는 시도도 확인했습니다.

'언젠가의 위협'이 아니라 '지금의 위협'입니다.

 

상세

2. 두 취약점, 무엇이 다른가

두 취약점 비교

두 취약점 비교 [02]

 

두 취약점 모두 PHP가 HTTP 요청을 처리할 때 생기는 메모리 관리 오류를 악용합니다.

 

구분CVE-2026-109618CVE-2026-109619
유형OOM 처리 오류해제 메모리 재사용(UAF)
원인메모리 부족 시 불완전 초기화해제된 메모리 재참조
영향원격 코드 실행RCE + 메모리 정보 유출

 

109618은 메모리 부족(OOM) 상황을 일부러 유도해 잘못된 데이터를 처리하게 만드는 방식이고, 109619는 이미 해제된 메모리를 후속 요청이 재사용(UAF)하는 방식입니다. 109619는 메모리 속 민감정보 유출까지 가능합니다.

 

버전

3. 우리 버전은 안전할까?

영향 버전과 패치 버전

영향 버전과 패치 버전 [03]

 

가장 먼저 확인할 것은 PHP 버전입니다.

 

PHP 버전패치 버전
PHP 8.58.5.12 이상
PHP 8.48.4.27 이상
PHP 8.38.3.36 이상
PHP 8.28.2.35 이상
PHP 8.1 이하지원 종료 → 업그레이드 권고

 

⚠️ '플러그인만 업데이트'로는 안 됩니다

이번 취약점은 PHP 런타임 자체의 문제예요.
워드프레스 플러그인이나 테마를 아무리 업데이트해도 해결되지 않습니다.

반드시 PHP 자체를 패치 버전으로 올려야 합니다.
구버전(5.4 등)도 영향이 확인돼, EOL 버전도 점검 대상입니다.

 

위협

4. 악용되면 생기는 일

주요 보안 위협

주요 보안 위협 [04]

 

위협내용
원격 코드 실행인증 없이 웹서버 권한으로 악성코드 실행
민감정보 유출메모리 속 비밀번호·토큰·API 키 탈취
서비스 장애워커 프로세스 종료로 다운
후속 침해탈취 정보로 내부망 추가 공격

 

🔎 참고 — 실전 악용 난이도

공개된 PoC(개념증명)는 많지만, 실제로 동작하는 것은 드물고
x86-64의 ASLR을 우회하는 것은 아직 없다는 분석도 있습니다(Tanium·Red Hat).

단, 프런티어 AI로 분석이 고도화될 수 있는 만큼 방심은 금물입니다.

 

대응

5. 기업이 지금 할 일

기업 점검 체크리스트

기업 점검 체크리스트 [05]

 

PHP 기반 서비스를 운영한다면, 아래 순서로 점검하세요.

 

단계내용
① PHP 현황웹서버 PHP 설치·버전·연동 상태 확인
② 외부 노출 우선인터넷 접근 가능한 PHP 서비스부터
③ 최신 패치패치 후 Apache·PHP-FPM 재시작
④ 로그 소급 점검10/20 이후 OOM·500대 오류·비정상 종료
⑤ 인증정보 교체노출 서버의 DB·관리자·API 키 교체

 

특히 ④ 로그 점검이 중요합니다. 취약점 정보가 유출된 10월 20일 이후부터 비정상적으로 큰 HTTP 요청, 반복적인 500/502/503 오류, 원인 불명의 프로세스 재시작 이력을 소급 점검해야 합니다. 침해 흔적이 있다면 ⑤ 인증정보 교체는 필수입니다.

 

완화

6. 패치 전 임시 완화책

임시 완화 조치

임시 완화 조치 [06]

 

즉시 패치가 어렵다면, 아래 조치로 일부 공격 경로를 줄일 수 있습니다. 어디까지나 보조 수단입니다.

 

조치목적
upload_progress=0109619 세션 경로 일부 차단
multipart 차단업로드 불필요 시 해당 요청 차단
요청 크기 제한post_max_size·upload_max_filesize
display_errors Off오류 정보 외부 노출 방지

 

🛑 완전한 임시 완화책은 '없습니다'

PHP 개발팀은 보안 업데이트 외에 모든 공격 경로를 막는
완전한 완화책은 없다고 명시했습니다.

임시 조치는 시간을 버는 수단일 뿐, 최우선은 '패치 적용'입니다.
memory_limit=-1 설정은 자원 고갈 위험이 있어 신중히 적용하세요.

 

정리하며

 

PHP2Shell은 특정 애플리케이션이 아닌 PHP 엔진 자체의 결함이라, 영향 범위가 넓고 대응이 까다롭습니다. 핵심은 세 가지입니다.

첫째, 내 PHP 버전을 당장 확인한다. 둘째, 외부 노출 서버부터 패치한다. 셋째, 임시 완화는 보조일 뿐, 패치가 정답이다.

PHP 기반 서비스를 운영 중이라면, 지금 바로 버전 점검부터 시작하시길 권합니다.

 

※ 이 글은 2026년 10월 22일까지 공개된 PHP 개발팀·KISA·보안업체 자료를 정리한 것입니다. 영향 범위·악용 기법·대응 방안은 추가 정보가 공개되며 바뀔 수 있습니다. 이 글은 방어 목적의 보안 정보이며 공격 방법을 안내하지 않습니다. 실제 대응은 PHP·KISA 공식 공지와 전문가 검토를 따르세요.

 

반응형