PHP2Shell(CVE-2026-109618/109619), 클라우드에서는 어떻게 찾고 막을까

안녕하세요, 테이텀 시큐리티입니다.
2026년 10월 21일, PHP 보안팀이 인증없이 원격 코드 실행(RCE, Remote Code Execution)이 가능한 취약점 2건(CVE-2026-109618, CVE-2026-109619, 별칭 PHP2Shell - CVE, Common Vulnerabilities and Exposures, 공개 취약점 고유 번호)의 패치를 공개했습니다. 심각도는 9.2이고, 패치 공개 당일부터 클라우드플레어와 watchTowr가 초기 공격 시도를 관측했다고 밝혔습니다.
개인 사이트라면 "내 PHP 버전이 몇이지?"만 확인하면 됩니다. 하지만 AWS・Azure・GCP(Google Cloud Platform)・NCP(Naver Cloud Platform)에 수십, 수백 개의 VM(Virtual Machine, 가상 머신)과 컨테이너를 운영하는 조직에서는 질문이 달라집니다.
우리가 사용하는 클라우드 어디에 PHP가 돌고 있는가?
그 중 인터넷에 노출된 것은 무엇인가?
뚫렸다면, 그 서버의 권한으로 어디까지 갈 수 있는가?
이번 테이텀 시큐리티 인사이트 아티클에서는 공개된 PHP2Shell 정보를 요약하고, 위의 세 가지 질문에 CNAPP(Cloud-Native Application Protection Platform, 클라우드 네이티브 애플리케이션 보호 플랫폼)을 기준으로 답해드립니다.
PHP2Shell 핵심 요약과 클라우드에서 더 위험한 이유
결함은 워드프레스 같은 애플리케이션이 아니라 PHP 엔진 자체에 있습니다. 바로 메모리 부족(OOM, Out of Memory) 시 반쯤 초기화된 요청 데이터를 정상 데이터처럼 정리하는 문제(CVE-2026-109618)와, 이전 요청의 남은 상태가 해제된 메모리를 가리키는 use-after-free 문제(CVE-2026-109619)입니다.
구분 | 내용 |
|---|---|
심각도 | CVSS(Common Vulnerability Scoring System, 공통 취약점 점수 체계) v4.0 9.2(공개 전 돌던 10.0은 오류) |
영향 SAPI(Server API, 웹 서버 연동 방식) | Apache mod_php(가장 위험), PHP-FPM(FastCGI Process Manager), PHP-CGI(Common. Gateway Interface), LiteSpeed, FrankenPHP |
수정 버전 | 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 |
8.1 이하 | 공식 릴리즈 없음(7.4 ~ 8.1은 소스 백포트만, 5.4 ~ 7.3은 EOL(End of Life, 지원 종료) |
임시 완화 | memory_limit=-1 강제, session.upload_progress.enabled=0, 8.5는 fatal_error_backtrace=0 - 완전한 해결책 아님 |
악용 상황 | Amazon 위협 인텔리전스가 공개 4일 전인 10월 17일 허니팟 공격 시도 관측, 21일 클라우드플레어・watchTowr도 공격 확인 |
클라우드 환경에서 대응이 어려운 3가지 이유
PHP는 생각보다 많은 곳에 숨어 있습니다. php:8.x-apche 같은 베이스 이미지, 오래된 마케팅 페이지, 내부 관리 도구(phpMyAdmin 등), 담당자가 바뀐 레거시 VM까지. 뉴시스 보도처럼 "방치된 홈페이지"가 침투 통로가 됩니다.
php -v로는 부족합니다. CLI와 PHP-FPM의 버전이 다를 수 있고, 배포판 패키지는 버전 번호 대신 백포트로 패치합니다. 컨테이너는 호스트에서 보이지 않습니다.
침해 후 피해는 권한이 결정합니다. 해당 웹 서버에 과도한 IAM Role이 붙어있거나 IMDSv1(Instance Metadata Service v1, 인스턴스 메타데이터 서비스 1버전)이 열려 있으면, 웹 셸 하나가 클라우드 계정 전체 침해로 이어질 수 있습니다.
결국 패치는 개별 서버의 일이지만, 무엇을 먼저 패치할지 정하는 것은 클라우드 전체를 보는 가시성의 문제입니다.
[CNAPP으로 대응하기] 찾고, 줄이고, 지켜보기
CNAPP은 CSPM(Cloud Security Posture Management, 클라우드 보안 형상 관리), CWPP(Cloud Workload Protection Platform, 클라우드 워크로드 보호), CIEM(Cloud Infrastructure Entitlement Management, 클라우드 권한 관리)을 하나의 플랫폼을 통해 제공합니다. 앞의 세 질문, 어디에 있나/외부에 노출되었나/뚫리면 어디까지 가나에 필요한 정보를 메뉴별로 확인할 수 있습니다.
질문 | CNAPP 기능 | PHP2Shell 대응을 위해 할 수 있는 일 |
|---|---|---|
어디에 PHP가 있나? | 워크로드 스캔, 레지스트리 이미지 스캔(CWPP) | 호스트 서버 패키지와 컨테이너 이미지를 CVE 스캔하고, 인벤토리(Package)에서 설치된 PHP 패키지 확인. 연동한 레지스트리 이미지도 스캔 |
인터넷에 노출되었나? | 인터넷 노출 자산 시각화, 외부 오픈된 보안그룹 룰 점검(CSPM) | 리전별 자산 및 네트워크 연결 현황과 보안 그룹 룰셋을 보고 외부 노출 자산을 가려 패치 우선순위 판단 |
뚫리면 어디까지 가나? | IAM 관리(CIEM) | IAM 역할에 적용된 정책의 Permission 상세, 권한 경로(Access Path), 90일 이상 미사용 정책을 확인해 과도한 권한 정리 |
지금 공격 받고 있나? | 실시간 이벤트 탐지 | 런타임 보안 규칙에 웹 루트 디렉터리를 등록해 파일 생성・수성・삭제 이벤트 탐지. CloudTrail 이벤트 정책・이상 탐지로 클라우드 API 활동 모니터링. 경고는 이메일・Slack・Teams 등으로 전송 |
다시 들어오지 않게 | Admission Control, 런타임 보안 규칙, CI/CD 보안 | CVE 점검 결과가 기준에 미달하는 컨테이너 실행을 탐지・차단하고, CI/CD 빌드 실패 조건으로 취약 이미지 배포를 사전에 차단 |
왜 IMDSv1 사용 여부가 중요한가
웹 서버가 뚫리면 공격자는 먼저 인스턴스 메타데이터(169.254.169.254)에서 IAM Role의 액세스 키를 노립니다.
IMDSv1: GET 요청 한 번이면 키가 나옵니다. SSRF(Server-Side Request Forgery, 서버 측 요청 위조: 서버를 속여 공격자가 지정한 내부 주소로 요청을 보내게 하는 공격)만으로도 탈취됩니다.
IMDSv2: 세션 토큰이 필요해 SSRF형 탈취를 대부분 막습니다.
한계: RCE에서는 토큰도 발급 받을 수 있어, 핵심은 IAM Role 최소 권한입니다.
CNAPP에서는 CSPM 보안 정책으로 인스턴스 메타데이터 설정을 점검하고(기본 정책에 없으면 JSONata 기반 커스텀 정책으로 추가), IAM 관리 메뉴에서 해당 역할의 권한과 미사용 정책을 확인할 수 있습니다. 테이텀 CNAPP은 폐쇄망・온프레미스로 설치할 수 있습니다. 외부 SaaS(Software as a Service, 구독형 클라우드 서비스)로 데이터를 내보낼 수 없는 금융・공공 환경에서도 같은 방식으로 대응할 수 있습니다.
클라우드 운영팀 PHP2Shell 체크리스트
VM・컨테이너 이미지 전체의 PHP 패키지와 두 CVE 영향 여부 스캔
CLI가 아닌 웹 서버에 연결된 PHP(mod_php, PHP-FPM) 버전 확인
인터넷 노출 자산부터 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 이상으로 업데이트
업데이트 후 PHP-FPM・웹 서버 재시작
8.1 이하 서버의 지원 버전 전환 계획 수립 (8.2 2026년 12월 31일 지원 종료)
즉시 패치가 어려운 서버에 임시 완화 설정과 외부 접근 제한 적용
영향 인스턴스의 IAM Role 권한 점검 및 IMDSv2 강제
10월 17일 이후 500 오류・메모리 오류 급증, 새 .php 파일, 웹 프로세스의 셀 실행 여부 확인
의심 정황이 있는 서버의 DB・API 비밀번호와 액세스 키 교체
CI/CD(Continuous Integration/Continuous Delivery, 지속적 통합・배포) 베이스 이미지 갱신 및 취약 이미지 배포 차단 정책 적용
[결론] 배치는 서버 단위, 대응은 클라우드 단위로
PHP2Shell은 "업데이트하세요"로 끝나는 뉴스처럼 보이지만, 실제 대응 난이도는 어디에 무엇이 있는지 아는 데에서 갈립니다. 공개 전부터 공격이 관측된 만큼, 다음 긴급 취약점에서도 수 시간 안에 영향 범위・노출 여부・권한을 한 번에 파악할 수 있어야 합니다. CNAPP은 클라우드 환경에서 취약한 자산에 대한 가시성을 확보하고 취약한 보안 설정을 점검 및 대응할 수 있는 효과적인 방법응 제공합니다.
CNAPP을 통한 클라우드 보안에 대해 궁금한 점이 있으시다면 테이텀으로 문의 부탁드립니다. 테이텀 CNAPP은 하나의 콘솔에서 클라우드 보안 운영 및 관리를 지원하고, 높은 가시성을 통해 운영 효율을 높입니다. 테이텀은 클라우드 보안에 관한 모든 문의를 환영합니다 :)
쉽고 빠른 클라우드 보안,
테이텀 시큐리티
참고 자료
PHP, Security Advisory: Critical remote code execution vulnerabilities, update now (2026-10-21)
Tenable, php2shell FAQ (2026-10-21)
GitHub php-src, GHSA-w8hw-w9fx-j79w: RCE via OOM corruption
GitHub php-src, GHSA-6wmf-4rv5-p3rp: RCE via stable global state
security-su, PHP 취약점 보안 업데이트 정리 (2026-10-22)
본 콘텐츠는 2026년 10월 22일 기준 공개 자료를 바탕으로 작성했으며, 추가 발표에 따라 내용이 달라질 수 있습니다.
More

사업자등록번호 277-81-01840 | 대표 : 양혁재
서울특별시 강남구 역삼2동 테헤란로 238 마크로젠빌딩 3층 테이텀
통신판매업신고 : 제2021-서울서초-3149호 사업자 정보 확인


