상세 컨텐츠

본문 제목

로그인 없이 서버를 장악하는 PHP 취약점, PHP2Shell이란 무엇인가?

IT기술노트

by 경험한사람 2026. 10. 24. 21:40

본문

웹사이트를 움직이는 PHP 엔진 자체에서 로그인 없이 서버를 장악할 수 있는 치명적 취약점(PHP2Shell)이 공개됐습니다. 패치 전에 정보가 먼저 유출돼 해외에서는 이미 공격이 관측됐고, KISA도 긴급 대응 수칙을 냈습니다. 무엇이 문제이고, 무엇부터 해야 하는지 정리했습니다.


 

 

목차
   ­ㄴ  무슨 일이 있었나
   ­ㄴ  주요 경과
   ­ㄴ  쉽게 이해하기
   ­ㄴ  왜 중요한가
   ­ㄴ  오해와 사실
   ­ㄴ  현장에서 보면
   ­ㄴ  이렇게 대비하세요
   ­ㄴ  용어 풀이
   ­ㄴ  관련기사(출처)
   ­ㄴ  누구나 이용할 수 있는 PHP2Shell 무료 점검


□  무슨 일이 있었나
 

   PHP 개발팀은 2026년 10월 21일 23시(한국시간), 인증 없이 원격에서 코드를 실행할 수 있는 치명적 취약점 2건을 고친 보안 업데이트를 긴급 배포했습니다.
    두 취약점은 묶어서 'PHP2Shell'로 불리며, PHP 보안팀은 둘 다 CVSS v4.0 기준 9.2점(치명적)으로 평가했습니다. 일부에서 언급되는 10점은 공식 점수가 아닙니다.
    문제는 순서였습니다. 패치가 나오기 하루 전인 10월 20일 취약점 정보와 공격 시연 화면이 먼저 유출됐고, 해외 보안업체들은 실제 공격 시도를 관측했다고 밝혔습니다.

    1. 취약점 : CVE-2026-109618, CVE-2026-109619 (통칭 PHP2Shell)
    2. 유형
        - 인증 없는 원격 코드 실행(RCE), 서버 메모리 정보 노출
    3. 심각도
        - CVSS v4.0 9.2 (Critical), 2건 동일
    4. 수정 버전
        - 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 이상

    5. 영향 버전
        - 위 수정 버전 미만 전체
        - 지원 종료된 8.1 이하(7.x, 5.x 포함)도 영향 → 공식 패치 없음


□  주요 경과
 

    - 2026년 08월
        . 보안기업 Calif(OpenAI 'Patch the Planet' 프로젝트 참여)와 Wiz가 각각 독립적으로 발견해 PHP에 제보
    - 2026년 10월 17일
        . 아마존 위협 인텔리전스, 공개 4일 전 자사 허니팟에서 공격 시도 포착
    - 2026년 10월 20일
        . PHP, 다음 날 긴급 보안 업데이트 예고 / 취약점 정보·공격 시연 화면 유출
    - 2026년 10월 21일
        . PHP, 수정 버전 배포 및 보안 공지 (23:00 KST)
        . KISA 보호나라, PHP 제품 보안 업데이트 권고
        . 클라우드플레어, 무료 요금제 포함 WAF 차단 규칙 적용
    - 2026년 10월 22일
        . KISA, 'PHP2Shell 관련 기업 보안 대응 수칙' 배포
        . 국내 보안기업들, 무료 점검 서비스 잇따라 공개
    - 진행 중
        . watchTowr 등 해외 보안업체, 실제 공격(in-the-wild) 관측 보고


□  쉽게 이해하기
 

    웹사이트를 건물에 비유하면, 워드프레스·그누보드 같은 프로그램은 각 사무실이고 PHP는 건물 전체의 출입 시스템입니다.
    이번 취약점은 사무실 자물쇠가 아니라 출입 시스템 자체의 결함입니다. 그래서 사무실 문단속(홈페이지 프로그램 업데이트, 로그인 강화)을 아무리 잘해도 막을 수 없습니다.
    공격자는 크게 조작한 업로드 요청을 보내 PHP가 '메모리 부족' 상태에 빠지는 순간을 노립니다. 이때 PHP가 정리하다 만 메모리를 다음 처리에서 정상 데이터로 믿어 버리고, 그 틈으로 공격자 명령이 실행됩니다.
    같은 결함으로 서버 메모리에 남은 DB 비밀번호, API 키, 세션 정보가 밖으로 새어 나갈 수도 있습니다.


□  왜 중요한가
 

    1. 영향 범위가 넓습니다
        - 워드프레스, 드루팔, 줌라, 마젠토, phpMyAdmin, 넥스트클라우드, 라라벨 등 주요 PHP 서비스에서 원격 코드 실행이 확인됐습니다.
        - 웹사이트뿐 아니라 PHP를 내장한 네트워크 장비, NAS, 관리 콘솔, 컨테이너 이미지도 영향을 받을 수 있습니다.

    2. 공격 조건이 쉽습니다
        - 로그인이 필요 없고, 정상적인 웹 요청 형태로 공격할 수 있습니다.
        - 기본 설정 그대로인 서버도 취약합니다. 특히 Apache + mod_php 구성의 위험이 가장 큽니다.

    3. 피해가 큽니다
        - KISA는 공격 성공 시 웹셸 설치, 고객정보 유출, 홈페이지 변조, 내부망 침투로 이어질 수 있다고 경고했습니다.


□  오해와 사실
 

이런 말이 돌지만 사실은
워드프레스를 최신으로 올렸으니 괜찮다 결함은 그 아래 PHP 엔진에 있습니다. 홈페이지 프로그램과 PHP는 따로 업데이트해야 합니다.
관리자 페이지는 로그인해야 들어가니 안전하다 로그인 이전, 요청을 받아 처리하는 단계에서 공격이 성립합니다.
위험도 10점 만점의 최악 취약점이다 PHP 공식 평가는 CVSS v4.0 9.2점입니다. 10점은 일부 업체의 자체 평가입니다.
설정만 바꾸면 막을 수 있다 PHP 공식 입장은 "완전한 완화책은 없고 업데이트만이 안전한 선택"입니다. 설정 변경은 일부 경로만 줄입니다.
업데이트했으니 끝났다 재시작하지 않으면 이전 버전이 계속 동작합니다. 패치 전에 이미 침해됐을 가능성도 따로 점검해야 합니다.
무료 점검에서 '확인 불가'가 나왔으니 안전하다 서버가 버전을 숨겼을 뿐일 수 있습니다. '확인 불가'는 안전하다는 뜻이 아닙니다.


□  현장에서 보면
 

이번 건은 "패치가 나왔는가"보다 "우리 회사 어디에 PHP가 돌고 있는지 아는가"를 묻는 사고입니다. 실무에서 구멍은 직접 운영하는 대표 홈페이지보다 외주로 만든 이벤트·캠페인 페이지, 오래된 게시판, 장비 관리 화면처럼 담당자가 흐릿한 곳에서 생깁니다.

또 하나 흔한 실수는 서버에서 php -v로 버전만 보고 조치 완료로 보고하는 경우입니다. 명령줄 PHP와 웹이 실제로 쓰는 PHP는 다를 수 있고, 업데이트 후 재시작을 빠뜨리면 이전 버전이 그대로 돌아갑니다. 웹에서 실제 동작하는 버전 재확인 + 10월 20일 이후 로그 점검까지 끝나야 '조치 완료'입니다.


□  이렇게 대비하세요
 

    1. 개인 사용자 / 소규모 사업자
        - 호스팅(카페24 등)으로 쇼핑몰·홈페이지를 운영한다면 호스팅사에 PHP 업데이트 적용 여부와 일정을 문의하세요.
        - 외주로 만든 사이트라면 제작·유지보수 업체에 조치 여부를 확인하세요.
        - 자주 쓰는 사이트에서 유출 안내가 오면, 같은 비밀번호를 쓰는 다른 사이트의 비밀번호도 함께 바꾸세요.

    2. 기업 - 기술적 조치
        - [1순위] 업데이트 후 재시작 : 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 이상 적용 후 Apache·PHP-FPM 재시작, 컨테이너는 베이스 이미지 재빌드·재배포
        - 버전 확인은 웹 기준으로 : 명령줄(php -v)이 아닌, 웹에서 실제 동작하는 버전으로 확인 (배포판은 버전 번호 유지한 채 패치만 백포트하는 경우가 있어 보안 공지도 함께 확인)
        - 8.1 이하 : 공식 패치 없음 → 배포판·LTS 업체 보안 업데이트 확인 후 지원 버전으로 이전 (8.2도 2026년 말 지원 종료이므로 8.3 이상 권장)
        - 패치 전 임시 완화 : session.upload_progress.enabled = 0, session.auto_start = 0 등 (서비스 영향 확인 후 적용, 근본 해결 아님)
        - WAF : 사용 중인 WAF·CDN의 PHP2Shell 관리형 규칙 적용 여부 확인 (우회 가능성이 있어 보조 수단)
        - 버전 노출 차단 : expose_php = Off, 웹서버 버전 표시 숨김

    3. 기업 - 관리적 조치
        - 자산 파악 : 인터넷에 공개된 서버부터 PHP 사용 여부·버전 목록화 (외주 사이트, PHP 내장 장비·솔루션, 외부 컨테이너 이미지 포함)
        - 침해 여부 점검 : KISA 권고대로 10월 20일 이후 로그 전체 점검, 가능하면 그 이전까지 확인
          · 'in Unknown on line 0'으로 끝나는 메모리 초과 오류, 워커 비정상 종료(segfault) 반복
          · 비정상적으로 큰 세션 파일, 최근 생성·변경된 PHP 파일(웹셸), 웹서버 계정의 외부 연결
        - 비밀정보 교체 : 업데이트 전 인터넷에 노출됐던 서버는 DB 비밀번호, API 키, 관리자 계정 비밀번호 교체 / 침해 흔적이 있는 서버는 격리 후 교체
        - 협력사 확인 : 호스팅·유지보수·장비 벤더에 조치 결과를 문서로 회신받기


□  용어 풀이
 

    - PHP : 웹사이트를 만드는 서버용 프로그래밍 언어. 워드프레스 등 수많은 사이트가 사용
    - RCE(원격 코드 실행) : 공격자가 멀리서 남의 서버에 원하는 명령을 실행하는 것
    - CVSS : 취약점 위험도를 0~10점으로 매기는 국제 기준. 9점 이상은 '치명적'
    - 웹셸 : 서버를 원격 조종하려고 공격자가 몰래 심는 파일
    - mod_php / PHP-FPM : 웹서버가 PHP를 실행하는 방식. 이번 취약점은 둘 다 영향
    - WAF : 웹 공격 요청을 걸러 주는 웹 방화벽
    - 백포트 : 버전 번호는 그대로 두고 보안 수정만 옮겨 적용하는 것
    - EOL(지원 종료) : 제조사가 더 이상 보안 업데이트를 내지 않는 상태


□  관련기사(출처)
 


□  누구나 이용할 수 있는 PHP2Shell 무료 점검
 

    ※ 반드시 본인이 관리하거나 점검 권한을 받은 사이트만 점검하세요. 남의 사이트를 무단으로 점검하면 법적 문제가 될 수 있습니다.
    ※ 웹 점검 서비스는 대부분 공격 요청 없이 서버가 응답에 드러낸 PHP 버전으로 판정합니다. 버전을 숨긴 서버는 '확인 불가'로 나오며, 이는 안전하다는 뜻이 아닙니다. 정확한 확인은 서버에서 직접 해야 합니다.

서비스 제공 이용 방법 이런 분께
PHP Guard 티오리(Xint) 사이트 주소(URL) 입력 누구나 / 내부망 점검은 별도 문의
PHP2Shell 점검 스틸리언 사이트 주소(URL) 입력 누구나
PHP2Shell 취약점 스캐너 엔키화이트햇 URL·호스트 입력(여러 개 가능), 로그인 불필요 여러 사이트를 한 번에 점검할 때 (스캔 ID는 비공개 유지)
php2shell 긴급점검 파이오링크 URL 입력 + 서버용 점검 스크립트(Linux·Windows) 제공 URL 점검 후 서버에서 직접 확인까지 하려는 운영자
php2shell-checker OpenAI (GitHub) Node.js로 실행 (URL 점검 / 서버 로컬 점검) 서버 관리자·개발자

    점검 결과 이렇게 보세요
        - 취약 : 즉시 업데이트 → 재시작 → 10월 20일 이후 로그 점검
        - 확인 불가 : 서버에서 직접 버전 확인 (호스팅 이용자는 호스팅사 문의)
        - 안전(패치됨) : 패치 전 침해 여부 점검과 비밀정보 교체가 남아 있는지 확인
        - 인터넷에 "PHP2Shell PoC"로 도는 출처 불명 공격 코드는 악성코드가 섞여 있을 수 있으니 실행하지 마세요.


감사합니다.

관련글 더보기