어젯밤 큰 이슈가 되었던 PHP2Shell (CVE-2026-109618 & CVE-2026-109619) 취약점에 대한 시리즈를 계속합니다.
간밤에 혼란스러운 정보가 많이 오갔는데, 그 중 여전히 유효한 것과 그렇지 않은 것을 구분하고, 개발자나 보안 전문가가 아닌 평험한 서버 운영자의 레벨에 맞추어 하나씩 차근차근 정리해 보겠습니다.
모든 정보는 2026년 10월 22일 오후 2시 기준이고, 이후 새로운 정보가 나오면 바뀔 수 있습니다. 만약 2027년 이후에 이 글을 찾아오신 분이라면 그냥 닫으시기 바랍니다.
개요
1. 우선, 저희 회사에 서버 관리를 위탁하신 분은 이번 이슈를 더이상 걱정하실 필요가 없습니다. 어젯밤에 모두 패치해 드렸습니다. 일부 특이한 서버 세팅으로 패치가 곤란한 사례도 있었지만, 그런 경우에는 개별적으로 연락을 드렸으니 연락을 받지 못하셨다면 문제가 없는 것입니다. (이 글 링크를 공유하기 위해 맨 위에 적어 둡니다. 고갱님이 아니라면 무시하세요...)
2. php.ini에서 파일 업로드와 관련된 어떤 설정을 변경하라는 정보는 더이상 유효하지 않습니다. 사전 유출된 해킹 기법이 해당 설정을 활용했기 때문에 그 설정을 끄라는 말이 돌았을 뿐, 취약점이 모두 공개된 지금은 그 설정과 관계없이 공격이 가능하다고 합니다. (단, 불필요한 설정이므로 Off 해두는 것이 좋기는 합니다.)
3. 현재로서는 PHP 개발팀이 공식적으로 공개한 보안패치가 포함된 버전으로 업데이트하는 것이 유일한 해결책입니다.
4. PHP 개발팀은 7.4~8.5 범위의 모든 버전에 대한 보안패치를 공개했습니다. 예전에 지원 종료를 선언했던 7.4~8.1도 이번에 모두 패치되었습니다. 공교롭게도 이 범위는 라이믹스가 지원하는 PHP 버전 범위와 일치하므로, 라이믹스 홈페이지를 운영하는 서버라면 모두 업데이트가 가능하다는 뜻입니다.
Debian 및 Ubuntu 계열 리눅스
데비안 12~13, 우분투 22.04/24.04/26.04 버전이라면 apt update && apt upgrade 명령으로 업데이트할 수 있습니다.
간밤에 얘기가 나왔던 PPA 저장소 이슈는 해결되었으니 더이상 신경쓰지 않아도 됩니다. PHP 7.4~8.5 범위를 패키지 설치하셨다면, 설치 당시에 설정해 둔 저장소를 그대로 유지한 채 업데이트할 수 있습니다.
CentOS Stream, Rocky, AlmaLinux, Amazon Linux 등 RPM 계열 리눅스
지원 기간이 남아 있는 OS에서 기본 제공되는 PHP 버전이나 remi 저장소를 사용중이라면 dnf update 명령으로 업데이트할 수 있습니다. (국내에서 많이 사용하는 Rocky 기준, 지원 기간이 남아 있는 것은 8~10 버전대입니다.)
간밤에 얘기가 나왔던 remi 저장소 이슈는 더이상 신경쓰지 않아도 됩니다. 휴가중이던 운영자분이 휴가를 포기하고 패치를 배포해 주셨거든요. (프랑스 사람이 휴가를 포기한다는 것은 보통 일이 아닙니다... 지구 멸망급 시나리오인 듯)
문제는 remi 저장소가 아닌 dnf module을 사용해서 PHP 버전을 변경한 경우입니다. dnf module로 기본 제공되는 버전은 평소에도 업데이트가 늦는 편이거든요. 예를 들어 오늘 새벽에 Rocky 9에서 dnf module로 PHP 8.3을 업데이트했는데 패치되지 않은 버전이 나온 사례가 있습니다. 만약 dnf module을 사용하신다면 업데이트 후 반드시 PHP 버전과 빌드 날짜를 확인하시기 바랍니다. 패치되지 않았다면 remi 저장소로 넘어가는 것을 추천합니다.
Amazon Linux Extras를 통해 제공되는 어정쩡한 PHP 버전들도 마찬가지입니다. 얘네들은 업데이트 좀 해주는 것 같다가 소리소문없이 중단해 버립니다. 애당초 아마존 리눅스는 자동으로 생성해서 잠깐 쓰다가 없애버릴 인스턴스에 최적화된 것이지, 한 번 세팅해 놓고 몇 년씩 쓰라고 있는 물건이 아니라는 인상을 받습니다.
도커
이번에 보안패치가 가장 빨리 된 것은 모 보안 업체에서 엠바고를 어기고 무단 배포한 도커 이미지였습니다. 반면, 보안패치가 가장 늦게 된 것은 "공식" PHP 도커 이미지였습니다. 이 두 사례가 도커의 현실을 보여 준다고 생각합니다. 극과 극이 함께 존재하고, 공식조차 믿기 어렵다는 거죠. 하나의 답으로 커버할 수가 없습니다.
원칙적으로, 도커는 컨테이너 안에서 업데이트 돌려 가며 쓰라고 있는 물건이 아닙니다. 사용하는 베이스 이미지가 패치되었는지 확인하고, 패치된 베이스 이미지를 받아온 후, 기존의 컨테이너를 폐기하고 다시 만드는 것이 정석입니다.
그 과정에서 데이터를 날려먹는 분들이 많다는 것이 함정입니다. 그래서 온갖 꼼수가 나타나는데, 꼼수를 모두 커버하기는 귀찮으니 각자의 시스템 구성에 맞는 방법을 AI에게 물어보시라는 말로 마치겠습니다.
댓글 1
라이믹스로 사이트 운영하시는 분들
보안패치 이런거 철저하게 잘하셔서
모두 아무런 문제없이 사이트 잘 운영해 나가셨으면 하네요.
기진곰님 말하신대로 시스템 구성에 맞는 방법을
AI에게 물어봐가면서....