보안
워드프레스가 2016년까지 거슬러 올라가는 취약점을 고쳤다. 패치되지 않은 사이트는 다섯 시간 만에 스캔당했다
CVE-2026-87902는 인증받지 않은 방문자가 워드프레스의 페이지 템플릿 처리 과정에 로컬 PHP 파일을 끌어오도록 허용하며, 흔한 호스트 구성에서는 그것이 코드 실행으로 이어진다. 패치는 4.7까지 모든 브랜치에 배포됐고, 탐색은 같은 날 오후에 시작됐다.
MAI
워드프레스는 9월 22일 7.1.2를 공개하면서, 같은 수정을 현재 지원하는 모든 보안 브랜치에, 4.7까지 거슬러 백포트했다. 이 취약점 CVE-2026-87902는 인증받지 않은 방문자가 페이지 템플릿 처리 과정을 유도해, 활성 테마 디렉터리 바깥에 있는 읽기 가능한 로컬 PHP 파일을 포함시키도록 만든다. 일부 호스트 환경에서는 이것이 원격 코드 실행으로 이어진다. Patchstack은 같은 날 17시 44분(UTC)에 첫 공격 시도를 차단했다고 밝혔다. 릴리스가 나온 지 다섯 시간도 되지 않은 시점이다.
바로 그 간격이 이 사건의 핵심이다. 패치는 곧 취약점의 공개이기도 하며, 전체 웹사이트의 40.2%를 돌리는 소프트웨어에서는 그 사이에 열리는 창이 피해가 발생하는 지점이다.
2016년까지 닿는 결함
영향 범위는 2016년 12월에 나온 4.7.0에서 시작한다. 워드프레스가 그만큼 오래된 브랜치까지 일상적으로 백포트하는 일은 없다. 이번에 그렇게 했다는 사실 자체가, 프로젝트가 이 노출을 어떻게 보는지 가장 분명하게 말해준다.
| CVE | CVE-2026-87902 |
| 영향 버전 | 워드프레스 4.7.0 ~ 7.1.1 |
| 수정 버전 | 7.1.2, 7.0.6, 6.9.9, 6.8.10, 6.7.9, 6.6.9 및 4.7.37까지의 백포트 |
| 해당 구성 요소 | 페이지 템플릿 처리(get_page_template()) |
| 보고자 | Robert Ressl, 책임 있는 공개 |
| 악용 여부 | 9월 22일 탐색 행위 관측, 확인된 침해 보고는 없음 |
W3Techs는 릴리스 당일 기준으로 워드프레스가 전체 웹사이트의 40.2%, CMS 시장의 58.8%를 차지하며, 워드프레스 설치본의 62.5%가 버전 7이라고 집계했다. 문제는 남은 3분의 1이다.
'조건부'라는 말이 짊어진 무게
프로젝트와 Patchstack 모두 코드 실행은 조건부라고 신중하게 표현한다. 파일 포함 자체는 조건과 무관하게 성립한다. 그것이 실행으로 바뀌려면 page-templates 같은 최상위 디렉터리를 가진 테마가 활성화돼 있어야 하고 — Patchstack은 과거의 기본 테마나 널리 쓰이는 서드파티 테마에서 흔하다고 지적한다 — PHP의 register_argc_argv가 켜져 있어야 한다. 후자는 공식 PHP 도커 이미지와 PHP 8.5 미만을 쓰는 cPanel 환경에서 기본값으로 켜져 있다.
특수한 조건이 아니다. 기본값이다. 심각도 점수가 갈리는 것도 그 점을 어떻게 취급하느냐의 차이에서 온다. 프로젝트 권고문은 9.2를 제시한다. CVE.org에 게시된 CNA 기록은 공격 복잡도를 '높음'으로 잡은 벡터로 8.1을 매겼고, NVD 분석은 아직 진행 중이다. 차이를 만드는 것은 널리 퍼진 기본값을 공격자에게 장애물로 셈할지, 아니면 인터넷의 평범한 상태로 볼지의 판단이다. 사이트 운영자에게는 학술적인 논쟁에 불과하다. 파일을 포함시키는 기본 능력은 무조건 성립하고, 임의의 로컬 PHP 파일을 읽을 수 있는 공격자는 이미 설정상의 비밀이 놓인 영역 안에 들어와 있다.
다섯 시간
Patchstack의 텔레메트리가 그리는 그림은 표적을 정한 캠페인이 아니라 기회주의적인 일제 스캔이다. 트래픽은 소수의 출발지 — 인접한 두 개의 IPv4 주소와 일부 IPv6 — 에서 왔고, 첫 한 시간 안에 정점을 찍은 뒤 잦아들었다. 요청은 실행 시도가 아니었다. 어느 호스트가 아직 취약한지 가려내기 위해, 평범한 워드프레스 코어 파일을 판별 기준으로 삼은 정찰이었다.
이것이 대규모 악용의 첫 단계가 보이는 전형적인 모습이다. 누군가 권고문을 읽고, 탐지기를 만들고, 인터넷에 뿌려 표적 목록을 만든다. 실행 시도가 온다면 그것은 응답한 주소를 향한다.
방어하는 쪽이 할 일
업데이트할 것. 자동 백그라운드 업데이트가 켜진 사이트는 릴리스 시점부터 이미 패치를 받았다. 워드프레스 자신의 안내는 대시보드에서, 또는 릴리스를 내려받아 즉시 업데이트하라는 것이다. 노출은 거의 전적으로 자동 업데이트가 꺼져 있는 곳에 남아 있다. 호환성을 위해 버전을 고정해 두는 매니지드 호스팅, 더 이상 주인이 없는 스테이징 환경과 방치된 설치본, 그리고 운영자가 더는 소프트웨어로 인식하지 않을 만큼 오래된 브랜치의 사이트들이다.
당장 패치할 수 없다면, Patchstack과 Hadrian 모두 임시 웹 방화벽 필터링과 접근 로그에서 무엇을 찾아야 하는지 — 쿼리 파라미터에 들어간 인코딩된 트래버설 문자열, 그리고 돌려주지 말았어야 할 파일 내용을 돌려준 과거 요청 — 를 설명해 두었다. 탐지에 관한 세부는 그 권고문에 있으니, 규칙을 즉석에서 만들기보다 그쪽을 따르는 편이 낫다.
이 취약점은 현재 CISA의 Known Exploited Vulnerabilities 목록에 올라 있지 않으며, 이 글을 쓰는 시점까지 확인된 침해 보고도 없다. W3Techs의 버전 분포가 시사하는 만큼 패치되지 않은 꼬리가 길다면, 그 상태는 오래가지 않을 것이다. 워드프레스의 자동 업데이트는 열린 웹에서 가장 효과적인 보안 기반 가운데 하나이고, 이번 릴리스는 그 좋은 증명이기도 하다 — 다만 그것이 실제로 닿는 약 3분의 2의 설치본에 한해서다.
Sources: WordPress 7.1.2 Security Release · WordPress security advisory GHSA-7hp8-65ch-5whp · Patchstack: WordPress 7.1.2 Security Release · Patchstack: Attackers Started Probing WordPress Sites Hours After the Patch · The Hacker News: WordPress Issues Patch for Critical Flaw · Hadrian vulnerability alert: CVE-2026-87902 · W3Techs: Usage statistics of WordPress