PHP가 뭐길래 웹사이트가 한꺼번에 멈췄나, 웹사이트를 움직이는 언어 이야기
2026년 10월 21일, 웹사이트 제작에 널리 쓰이는 프로그래밍 언어 PHP에서 치명적인 보안 취약점 2건이 공개됐습니다. 네덜란드와 핀란드의 일부 정부기관은 예방 차원에서 웹사이트 운영을 멈췄고, 국내에서도 민간 분야 사이버위기 경보가 '주의' 단계로 올라갔습니다.
평소 이름을 들을 일이 거의 없는 PHP가 왜 이렇게 큰 파장을 일으켰을까요. PHP가 어떤 언어인지, 이번에 무엇이 문제였는지, 홈페이지를 운영한다면 무엇을 확인해야 하는지 차례로 정리했습니다.
PHP는 웹페이지를 서버에서 만들어 주는 언어입니다
PHP는 웹 개발에 특화된 오픈소스 스크립트 언어입니다. 가장 큰 특징은 코드가 방문자의 브라우저가 아니라 웹사이트 서버에서 실행된다는 점입니다. 서버에서 PHP 코드가 실행되면 그 결과로 HTML 화면이 만들어지고, 방문자의 브라우저는 완성된 화면만 받아서 보여 줍니다.
같은 웹 언어인 자바스크립트가 주로 브라우저 안에서 움직이는 것과 다른 부분입니다. 그래서 방문자는 화면 뒤에서 어떤 PHP 코드가 돌아가는지 알 수 없습니다. 로그인한 사람마다 다른 화면을 보여 주거나, 게시판 글 목록을 불러오거나, 쇼핑몰 장바구니를 보여 주는 것처럼 상황에 따라 내용이 바뀌는 페이지를 만들 때 PHP 같은 서버 언어가 쓰입니다.
이름의 유래에도 이런 쓰임새가 담겨 있습니다. 1990년대 중반 처음 만들어졌을 때는 개인 홈페이지(Personal Home Page)를 관리하기 위한 도구였고, 기능이 늘어나면서 지금의 'PHP: Hypertext Preprocessor'라는 이름이 붙었습니다.
PHP를 쓰는 웹사이트는 얼마나 될까
웹 기술 분석업체 W3Techs에 따르면 어떤 프로그래밍 언어로 만들었는지 확인되는 웹사이트 가운데 약 75%가 PHP를 씁니다. 전 세계 웹사이트의 약 43%가 쓰는 홈페이지 제작·관리 도구 워드프레스도 PHP로 움직입니다.
이렇게 널리 퍼진 데에는 배우기 쉽다는 점이 컸습니다. 오픈소스라 누구나 무료로 쓸 수 있고, 문법이 C 언어와 비슷하며, HTML 문서 안에 바로 섞어 쓸 수 있습니다. 리눅스, 윈도우 등 운영체제를 가리지 않는다는 점도 장점입니다.
국내 사정은 조금 다릅니다. 우리나라 공공기관 홈페이지는 대부분 자바(Java)로 만들어져 이번 결함의 피해 우려는 거의 없는 것으로 파악됐습니다. 다만 일부 쇼핑몰과 학교 홈페이지 등 약 11만 곳이 PHP를 쓰는 것으로 추정됩니다.
이번 사태의 규모도 여기서 설명됩니다. 웹사이트 한 곳의 프로그램 오류가 아니라 수많은 웹사이트가 공통으로 쓰는 언어 자체에서 결함이 나왔기 때문에, 그 위에서 돌아가는 웹사이트들이 한꺼번에 영향을 받을 수 있었던 것입니다.
이번 PHP 취약점, 무엇이 문제였나
로그인 없이 서버를 장악할 수 있는 결함
이번에 공개된 취약점 2건(CVE-2026-109618, CVE-2026-109619)은 묶어서 'PHP2셸(PHP2Shell)'이라고 부릅니다. 한국인터넷진흥원(KISA)은 위험도를 CVSS 4.0 기준 9.2점으로 평가했습니다.
가장 큰 문제는 공격자가 로그인이나 인증 절차 없이 외부에서 서버에 명령을 실행할 수 있다는 점입니다. 공격에 성공하면 서버에 악성 프로그램을 설치하거나 홈페이지를 바꿔 놓을 수 있고, 서버에 저장된 고객정보가 유출되거나 서버 설정에 따라 내부망까지 공격이 번질 위험도 있습니다.
결함은 PHP가 컴퓨터 메모리를 관리하는 방식에서 비롯된 것으로 알려졌습니다. 웹 요청을 처리하는 PHP 설치 환경 전반이 영향을 받으며, PHP 측은 그중 아파치 웹서버의 mod_php 방식이 가장 위험하다고 밝혔습니다.
10년 넘게 숨어 있던 결함을 AI가 찾아냈습니다
이 결함은 10년 넘게 PHP 코드 속에 있었습니다. 과거에도 잠재적인 문제로 지적된 적은 있었지만, 실제 공격에 쓰기는 어렵다고 여겨져 왔습니다.
이번에 결함을 찾아낸 것은 AI였습니다. 미국 보안업체 캘리프가 오픈AI의 'GPT-5.6 솔' 모델로 PHP 소스코드를 점검하다 공격 경로를 발견했고, 구글 계열 보안업체 위즈도 독자적으로 취약점 2건을 찾아 신고했습니다. 캘리프 측은 AI 없이 했다면 몇 달이 걸렸을 점검을 6일 정도 만에 끝냈다고 설명했습니다.
패치가 나오기 전부터 공격 시도가 있었습니다
연구진이 PHP 개발진에 취약점을 알린 것은 8월 11일이었고, 보안 업데이트는 두 달여 뒤인 10월 21일에 나왔습니다. 원래 22일 배포할 예정이었지만, 20일 온라인 게시판에 관련 정보가 퍼지자 하루 앞당겼습니다. PHP 개발진은 대응이 늦어진 배경에 의사결정 구조와 자원 부족 문제가 있었다고 인정했습니다.
그 사이 일부 해커들은 패치가 나오기 전부터 취약점을 악용한 공격을 시도한 것으로 전해졌습니다. 유럽과 일본, 호주 등의 사이버보안 당국이 긴급 업데이트를 권고했고, 국내에서는 과학기술정보통신부와 KISA가 22일 민간 분야 사이버위기 경보를 '주의'로 올렸습니다.
패치를 적용해도 끝이 아닌 이유
24일에는 기존 업데이트로 막을 수 없는 새 취약점(CVE-2026-115560)이 추가로 공개됐습니다. 이용자의 로그인 상태 같은 접속 정보를 유지하는 '세션'을 처리하는 과정에서 생기는 원격 코드 실행 결함입니다.
다만 모든 서버가 영향을 받지는 않습니다. 세션 저장 형식을 특정 방식으로 지정한 상태에서 프로그램이 세션을 시작하기 전에 그 설정을 바꾸고, 파일 업로드 진행 상황을 추적하는 기능까지 켜져 있을 때만 해당됩니다. PHP 개발팀은 실제 운영 환경에서 이런 조합은 드물다고 설명했고, 수정은 다음 정기 업데이트에 담길 예정입니다.
KISA가 권고한 임시 조치
정식 패치가 나오기 전까지 PHP 설정에서 session.upload_progress.enabled 값을 0으로 바꾸고, PHP 실행 프로세스를 모두 재시작하도록 권고했습니다. 이 조치가 기존 PHP2셸 취약점까지 해결하는 것은 아니므로 21일 보안 업데이트는 따로 적용해야 합니다. 서버 설정 변경은 웹서비스 기능에 영향을 줄 수 있어 운영 환경을 먼저 검토한 뒤 적용해야 합니다.
PHP 홈페이지를 운영한다면 확인할 것
보도와 KISA 권고를 바탕으로, 홈페이지 운영자가 확인해야 할 내용을 순서대로 정리했습니다.
- 1우리 사이트가 PHP를 쓰는지부터 확인오래전 외주업체가 만든 홈페이지, 관리 없이 남아 있는 이벤트 페이지나 테스트 서버까지 살펴봐야 합니다. KISA는 자산 목록에 올라 있는 시스템만이 아니라 실제로 인터넷에 공개돼 작동 중인 서버를 기준으로 점검하라고 권고했습니다.
- 2PHP 버전과 보안 업데이트 적용 여부 확인21일 배포된 8.5.12, 8.4.27, 8.3.36, 8.2.35 이상인지 확인합니다. 일부 리눅스 배포판은 버전 번호를 그대로 둔 채 보안 수정만 반영하기도 하므로, 번호만 보고 판단하지 말고 공급업체의 보안 공지도 함께 확인해야 합니다.
- 3웹호스팅·관리 업체에 적용 여부 문의직접 서버를 운영하지 않는 소규모 사업자라면 호스팅 업체나 홈페이지 관리 업체에 PHP 업데이트 적용 여부를 물어보는 것이 가장 빠릅니다. 워드프레스 자동 업데이트는 서버의 PHP까지 바꿔 주지 않으므로, 서버 쪽 PHP를 누가 관리하는지도 확인해 두어야 합니다.
- 4업데이트 후 PHP 관련 서비스 재시작업데이트를 적용한 뒤에는 PHP를 실행하는 서비스를 재시작해야 합니다. 예전 프로그램이 메모리에 남아 있으면 업데이트가 완전히 반영되지 않을 수 있습니다.
- 5이미 들어온 흔적이 없는지 점검패치는 앞으로의 공격을 막는 조치일 뿐, 이미 설치된 악성 프로그램을 지워 주지는 않습니다. 보안업체 사이퍼마는 패치 이전부터 공격 시도가 관측된 만큼 10월 17일 이후의 서버 기록까지 확인하라고 권고했습니다. 웹서버 접근 기록과 오류 기록, 낯선 파일이 생기지 않았는지 함께 살펴봅니다.
PHP 8.2도 올해 말 지원이 끝납니다
이번 긴급 패치는 공식 지원 중인 8.2부터 8.5까지만 나왔습니다. PHP 8.1 이하는 이미 공식 지원이 끝나 일반적인 방식으로는 패치를 받을 수 없습니다. PHP 개발팀이 7.4, 8.0, 8.1용 최소 수정 소스를 따로 공개했지만, 직접 컴파일해서 적용해야 합니다.
| PHP 버전 | 이번 긴급 패치 버전 | 보안 지원 종료 |
|---|---|---|
| 8.5 | 8.5.12 | 2029년 12월 31일 |
| 8.4 | 8.4.27 | 2028년 12월 31일 |
| 8.3 | 8.3.36 | 2027년 12월 31일 |
| 8.2 | 8.2.35 | 2026년 12월 31일 |
| 8.1 이하 | 공식 패치 없음 | 지원 종료 |
PHP 8.2는 2026년 12월 31일로 보안 지원이 끝나, 그 뒤에 발견되는 취약점은 공식 수정이 나오지 않습니다. 당장 급한 패치를 마친 뒤에는 8.3 이상 버전으로 옮기는 계획도 함께 세워 두는 것이 좋습니다.
PHP 취약점 사태, 정리하면
PHP는 평소 눈에 띄지 않지만, 매일 여는 수많은 웹사이트의 뒤편에서 화면을 만들어 내는 언어입니다. 그만큼 PHP 자체에 결함이 생기면 그 위에서 돌아가는 웹사이트 전체가 함께 영향을 받습니다.
이번 결함은 웹사이트 서버 쪽 문제라 방문자의 PC나 스마트폰에서 따로 할 수 있는 조치는 많지 않고, 대응의 몫은 홈페이지를 운영하고 관리하는 쪽에 있습니다. 새 취약점이 추가로 공개되는 등 상황이 계속 바뀌고 있으니, 운영자라면 KISA 보호나라의 관련 공지를 꾸준히 확인하는 것이 좋습니다.
데이터 세이브
데이터 복구 전문 기업입니다. 상담은 대표 전화와 홈페이지, 네이버 톡톡, 카카오톡으로 받고 있습니다.
'IT 정보' 카테고리의 다른 글
| 아이폰·아이패드 시리 AI 한국어 시작, 내 기기 지원 여부와 켜는 방법 (0) | 2026.10.28 |
|---|---|
| OLED로 바뀐 아이패드 미니 8세대 40만원 오른 114만9천원 값어치 할까? (0) | 2026.10.27 |
| 삭제한 파일 복구 휴지통 비운 파일 복구 이제는 정말 주의해야 합니다 (0) | 2026.10.20 |
| 핸드폰 데이터 USB 백업 시 가장 주의할 점 (0) | 2026.10.20 |
| 윈도우11 10월 업데이트 후 '스마트 앱 컨트롤'이 안 켜진다면, MS가 인정한 오류 정리 (0) | 2026.10.20 |