2026년 10월 21일(현지 시각), PHP 개발팀이 정기 일정에 없던 긴급 보안 업데이트를 배포했습니다. 보안 업계에서 'PHP2Shell'이라고 부르는 PHP 보안 취약점 2건(CVE-2026-109618, CVE-2026-109619) 때문입니다. 인증 없이 외부에서 서버 명령을 실행할 수 있는 수준이라, 과학기술정보통신부는 다음 날 민간 분야 사이버위기 경보를 '관심'에서 '주의'로 올렸습니다.
PHP는 그누보드, 워드프레스, 카페24 같은 국내 홈페이지 상당수가 사용하는 언어입니다. 이 글에서는 이번 PHP 취약점이 어떤 내용인지, 내 홈페이지가 영향을 받는지 확인하는 방법, 그리고 오래된 PHP 버전을 쓰는 사이트가 왜 단순 업데이트로 끝나지 않는지까지 정리했습니다.
PHP2Shell 취약점이란? 핵심 요약
- CVE-2026-109618: 메모리가 부족해 요청 처리가 중간에 끊길 때, 반쯤 초기화된 데이터를 정상 데이터로 착각해 메모리가 오염되는 결함입니다.
- CVE-2026-109619: 앞선 요청이 쓰고 해제한 메모리가 같은 작업 프로세스의 다음 요청에서 다시 사용되는 'Use After Free' 결함입니다.
- 심각도: 두 건 모두 CVSS 4.0 기준 9.2점(치명적)입니다.
- 피해 범위: 공격에 성공하면 PHP 실행 권한으로 파일·데이터베이스에 접근하거나 악성 프로그램(웹셸)을 설치할 수 있습니다.
- 중요한 점: 홈페이지를 만든 코드의 문제가 아니라 PHP 자체의 결함입니다. 코드를 아무리 잘 짰어도 PHP 버전이 취약하면 영향을 받습니다.
아파치 mod_php, PHP-FPM, php-cgi 등 여러 실행 환경이 영향을 받는 것으로 보도됐습니다. 공격 코드는 서버 환경마다 달라야 해서 모든 서버가 똑같이 뚫리지는 않지만, 보안 연구진이 실제 공격을 재현한 만큼 "우리 사이트는 작아서 괜찮다"고 넘길 상황은 아닙니다.
영향 버전과 수정 버전: 내 PHP는 안전할까
PHP 공식 공지 기준으로, 현재 보안 지원을 받는 8.2~8.5 버전은 아래 버전 이상으로 올리면 이번 두 취약점이 수정됩니다.
- PHP 8.5 → 8.5.12 이상
- PHP 8.4 → 8.4.27 이상
- PHP 8.3 → 8.3.36 이상
- PHP 8.2 → 8.2.35 이상 (단, 2026년 12월 31일 보안 지원 종료)
문제는 그 아래 버전입니다. PHP 8.1, 8.0, 7.x, 5.x는 이미 공식 지원이 끝나 보안 패치가 나오지 않습니다. 이 버전들의 영향 여부는 PHP 공식 공지로 확인되지 않았지만, 취약점이 있더라도 고쳐 줄 패치가 없다는 점이 핵심입니다. KISA도 8.1 이하는 지원 버전으로 전환하고, 8.2는 연말 지원 종료를 앞두고 있으니 8.3 이상으로 옮길 것을 권고했습니다.
PHP 버전 확인 방법
- 서버 접속이 가능하면: 터미널에서
php -v명령을 실행합니다. 웹서버가 쓰는 PHP와 명령줄 PHP가 다를 수 있으니phpinfo()화면으로도 확인합니다. - 호스팅을 쓰는 경우: 호스팅 관리 화면의 'PHP 버전' 메뉴에서 확인하거나 호스팅사에 문의합니다.
- 잘 모르겠다면: 홈페이지를 만든 업체에 문의하거나, 아래 상담 버튼으로 주소만 알려 주셔도 확인을 도와드립니다.
국내 피해 현황: 취약 버전 추정 서버 11만 건
- 국내 노출 규모: 안랩은 인터넷 자산 검색 결과 국내에서 취약 버전 PHP를 쓰는 것으로 추정되는 자산이 약 11만 건이며, 전 세계 6번째 규모라고 밝혔습니다. 패치 이전 기준이라 실제와 차이가 있을 수 있습니다.
- 공격 시도: 클라우드플레어는 공개 직후 자사 네트워크에서 수백만 건의 공격 시도를 탐지했다고 밝혔고, 안랩도 수정 버전 배포 전부터 공격 시도를 관측했습니다.
- 해외 대응: 독일·프랑스·네덜란드 등 유럽 일부 공공기관은 예방 차원에서 웹사이트를 일시 중단했다고 로이터가 보도했습니다.
- 국내 호스팅사: 카페24, 가비아 등은 패치를 적용하고 고객에게 안내했습니다. 다만 호스팅사가 PHP를 올려 줘도 사이트 코드가 구버전 PHP에 묶여 있으면 구버전 환경을 계속 쓰게 되는 경우가 많습니다.
추가 취약점 CVE-2026-115560: 아직 정식 패치 전
10월 23일 PHP 개발팀은 세션 업로드 진행률 기능과 관련된 취약점(CVE-2026-115560)을 추가로 안내했습니다. 특정 세션 설정 조합에서만 발생하는 조건이 까다로운 문제지만, 10월 21일 업데이트로는 해결되지 않고 다음 정기 업데이트에서 수정될 예정입니다. 그때까지 PHP 개발팀과 KISA가 안내한 임시 조치는 다음과 같습니다.
php.ini(또는 PHP-FPM 풀 설정)에서session.upload_progress.enabled = 0으로 설정합니다. 코드 안의ini_set()이나.user.ini가 아니라 서버 설정에서 바꿔야 합니다.- 설정을 바꾼 뒤 PHP 프로세스를 모두 재시작합니다.
- 파일 업로드가 필요 없는 서비스라면 웹서버나 웹방화벽에서 업로드 요청과 요청 크기를 제한합니다.
임시 조치는 위험을 줄일 뿐 완전히 막지는 못합니다. 정식 수정 버전이 나오면 바로 업데이트해야 합니다.
지금 바로 해야 할 PHP 보안 조치 체크리스트
- 1. 버전 확인: 운영 중인 모든 서버의 PHP 버전을 확인합니다. 관리자 페이지·예약 시스템처럼 따로 떨어진 서버도 빠뜨리지 않습니다.
- 2. 업데이트와 재시작: 8.2~8.5는 수정 버전으로 올리고 웹서비스를 재시작합니다. 재시작하지 않으면 예전 프로세스가 그대로 돕니다.
- 3. 침해 흔적 점검: 10월 20일 이후 접속 기록, 웹 폴더에 새로 생긴 PHP 파일(웹셸), 처음 보는 예약 작업이나 계정이 있는지 확인합니다.
- 4. 비밀번호 교체: 침해가 의심되면 DB·FTP·관리자 비밀번호와 API 키를 바꿉니다.
- 5. 웹방화벽은 보조 수단: 즉시 업데이트가 어려우면 웹방화벽 차단 규칙을 적용하되, 업데이트를 대신하지는 못합니다.
- 6. 침해가 확인되면: 서버를 격리하고 로그를 보존한 뒤 KISA(118)에 신고합니다.
공식 정보는 PHP 공식 사이트와 KISA 보호나라 보안공지에서 확인할 수 있습니다.
PHP 7·5 버전 사이트는 '업데이트'만으로 끝나지 않습니다
PHP 8.3 이상으로 올리면 된다는 말은 쉽지만, 5~7년 전에 만든 홈페이지는 PHP 버전만 바꾸면 화면이 하얗게 나오거나 로그인·결제가 멈추는 일이 흔합니다. PHP가 버전을 올리면서 예전 문법과 함수를 없앴기 때문입니다.
- mysql_* 함수 삭제(PHP 7.0): 오래된 게시판·쇼핑몰의 DB 연결 코드가 통째로 동작하지 않습니다.
- each(), create_function() 등 삭제(PHP 8.0): 예전 라이브러리와 플러그인에서 오류가 납니다.
- 문자열·숫자 비교 규칙 변경(PHP 8.0): 오류 메시지 없이 조건문 결과가 달라져, 로그인·권한 확인 같은 로직이 조용히 틀어질 수 있습니다.
- 동적 프로퍼티 경고(PHP 8.2): 오래된 프레임워크(CodeIgniter 3 등)와 플러그인에서 경고가 쏟아집니다.
- 외부 라이브러리 호환: 결제 모듈, 엑셀·PDF 라이브러리, 에디터 등도 새 PHP에 맞는 버전으로 바꿔야 합니다.
그래서 구버전 PHP 사이트는 코드 전체를 새 버전에 맞게 고치는 리팩토링이 필요합니다. 이 과정을 미루면 이번 PHP2Shell 같은 취약점이 나올 때마다 패치를 받지 못한 채 운영하게 됩니다.
마그네틱소프트 PHP 버전 업그레이드·리팩토링 서비스
마그네틱소프트는 2014년부터 PHP 기반 홈페이지와 업무 시스템을 직접 개발하고 유지보수해 왔습니다. 다른 업체가 만든 사이트도 코드를 분석해 최신 PHP 버전에서 동작하도록 고쳐 드립니다.
- 현재 상태 진단: PHP 버전, 사용 중인 프레임워크·플러그인, 새 버전에서 깨지는 코드를 먼저 확인합니다.
- 호환성 리팩토링: 삭제된 함수, 바뀐 문법, 구버전 라이브러리를 최신 PHP 기준으로 고칩니다.
- 테스트 후 반영: 운영 사이트를 바로 건드리지 않고 테스트 환경에서 회원가입·로그인·문의·결제 등 주요 기능을 확인한 뒤 반영합니다.
- 보안 점검: 업그레이드하면서 웹셸 흔적, 노출된 관리자 경로, 취약한 업로드 기능도 함께 점검합니다.
PHP 버전 업그레이드·리팩토링 비용
50만원부터
사이트 규모, 현재 PHP 버전, 사용 중인 기능에 따라 달라집니다. 상담에서 홈페이지 주소를 알려 주시면 작업 범위와 견적을 안내해 드립니다.
자주 묻는 질문
Q. 호스팅사가 PHP를 업데이트했다는데, 따로 할 일이 있나요?
호스팅사가 제공하는 최신 PHP 버전을 내 사이트가 실제로 쓰고 있는지 확인해야 합니다. 사이트 코드가 오래돼 구버전 PHP를 그대로 선택해 둔 경우가 많고, 이때는 이번 패치의 보호를 받지 못합니다.
Q. PHP 7.4를 쓰는데 이번 취약점과 관계없나요?
PHP 7.4는 2022년 11월에 지원이 끝나 이번 취약점의 영향 여부와 관계없이 보안 패치가 나오지 않습니다. 앞으로 나올 취약점에도 대응할 수 없으므로 8.3 이상으로 옮기는 것이 안전합니다.
Q. 업그레이드하는 동안 홈페이지가 멈추나요?
테스트 환경에서 먼저 작업하고 검증이 끝난 뒤 운영 서버에 반영하므로, 반영하는 짧은 시간 외에는 평소처럼 운영할 수 있습니다.
Q. PHP 버전 업그레이드 비용은 얼마인가요?
마그네틱소프트의 PHP 버전 업그레이드·리팩토링은 50만원부터이며, 사이트 규모와 현재 PHP 버전, 사용 중인 기능에 따라 달라집니다.
Q. 다른 업체가 만든 홈페이지도 맡길 수 있나요?
네, 가능합니다. 소스 코드와 서버 접속 정보를 받아 진단한 뒤 작업 범위를 안내해 드립니다.
마무리: 이번 패치는 시작일 뿐입니다
PHP2Shell은 공개 하루 만에 수백만 건의 공격 시도가 이어질 만큼 파급력이 큰 취약점이고, 추가 취약점(CVE-2026-115560)도 정식 패치를 기다리고 있습니다. 지원이 끝난 PHP 버전을 쓰는 홈페이지는 이런 일이 생길 때마다 막을 방법이 없습니다. 이번 기회에 내 홈페이지의 PHP 버전부터 확인해 보시기 바랍니다.
PHP 버전 확인이나 업그레이드 견적이 필요하시면 아래 버튼으로 문의해 주세요. 정기적인 보안 관리가 필요하시다면 홈페이지 유지보수 비용과 필수 항목 글도 함께 참고하시기 바랍니다.