인증 없이 페이지 템플릿 경로 탐색으로 WordPress 조건부 RCE, CVSS 9.2... 4.7 브랜치까지 백포트 패치 배포
- WordPress가 인증 없이
get_page_template()의 페이지 템플릿 해석을 조작해 활성 테마 밖의 로컬.php파일을 include하는 경로 탐색 취약점을 확인함. CVSS 9.2의 중대 등급이며 서버와 테마 전제조건이 맞으면 RCE로 확장됨 - 공격 전제는 테마 최상위에 page- 접두사 디렉터리(예: page-templates)가 있고 웹 서버 계정이 읽을 수 있는 대상
.php파일이 서버에 존재하는 것임. Twenty Twelve, Twenty Fourteen, Neve, Hestia, Sydney가 영향권에 들어감 - pearcmd.php의 PEAR→RCE 전환은
register_argc_argv가 On일 때 쓰이며 공식 PHP Docker 이미지와 PHP 8.5 미만 기본 cPanel 구성이 영향을 받음. 공격 벡터는 네트워크이고 인증과 사용자 상호작용이 모두 불필요함 - Robert Ressl가 발견해 책임 공개했으며 WordPress 7.1.2에 수정이 포함됨. 4.7 브랜치까지 백포트되어 7.0.6, 6.9.9 등 각 유지 브랜치의 릴리스가 함께 나옴
- 토론에서는
page-templates가 WordPress 공식 문서가 권장하는 관례라서 영향 테마가 "몇 개뿐"이라는 주장을 반박하는 의견이 나옴. 코어 테마를 수정한 미공개 테마까지 포함하면 대상이 훨씬 많다는 지적임
Hacker News opinions
pearcmd.php가 존재해야 하고 register_argc_argv도 켜져 있어야 해서 호스팅 업체 흔한 구성은 아님. 근데 다른 테마 조건까지 맞으면 영향받는 사이트가 꽤 많을 듯.
기사가 말하듯 공식 PHP Docker 컨테이너가 이 구성을 갖고 있다는 게 문제임. 4.7까지 자동 업데이트 되는지는 모르겠고, 4.9.3은 자동 업데이트 메커니즘 자체에 버그가 있음.
pearcmd랑 register_argc_argv는 그냥 예시임. 근본 원인은 일부 테마에서 get_page_template이 미정제였다는 거고, 워드프레스 플러그인의 무단 파일 업로드와 체인 엮어서 코드 eval 가능함. 업로드 대신 require 체인 쓰는 이유는 하드닝된 환경 우회하고 로그에 안 남겨서임.
CVSS 점수는 아무 의미도 없고 헤드라인에서 안 보여주는 게 모두에게 좋음. 상황 의존적인 워드프레스 RCE인데 영향 테마가 몇 개 안 되잖아.
그 점수가 말하는 건 "특정 조건이면 네트워크로 코드를 실행할 수 있다"는 건데, 이건 사실 아님?
"테마 몇 개뿐"이라는 건 위험하게 틀린 얘기임. page-templates 같은 page- 접두사 최상위 디렉터리는 워드프레스 공식 문서가 권장하는 관례라서 취약한 테마가 엄청 많음. 문서에 page-templates/가 흔한 컨벤션이라고 명시돼 있음.
몇 개인지도 확신이 안 감. 코어 테마를 크게 고쳐 쓴 미공개 테마가 아주 많을 텐데, page- 접두사는 꽤 흔한 관례였거든.
이걸 쉴드 치는 사람이 이렇게 많은 게 어이없음. 9점대 CVSS가 터졌으면 읽고 존중해야지. 9점대 취약점이 계속 나오는 의존성이면 그게 문제인 거고, 워드프레스는 차라리 갈아엎거나 격리 VM에 범위 제한 인증서로 감싸야 함.
배너만 구글링하면 찾는 테마들이고, 거기다 pearcmd.php까지 쓸 수 있으면 공식 Docker php 이미지거나 기본 cPanel 쓰는 거라 구글링만 하면 드라이브바이로 털림.
방금 아주 오래된 테마에 예상 못 한 업데이트가 뜨는 걸 봤는데 이거 때문이었나 봄.
패치만 적용하면 되는 건지 테마가 취약한지도 점검해야 하는 건지 모르겠음. 패치 diff 보니까 근본 원인을 고친 것 같아서 테마 쪽은 상관없을 듯.
locate_template 공식 문서에 9년 전 댓글이 이 버그의 성격과 해결책을 정확히 써놨음. 유저가 주는 템플릿 이름을 넣으면 활성 테마, 부모 테마, wp-includes/theme-compat/ 세 위치인지 검증하라고.
예전에 클라이언트용 테마 손으로 패치했던 기억이 남. 보안 구멍을 그냥 두는 코어 팀이라니 그때는 그랬지.
이게 왜 아직도 웹에서 제일 털리는 소프트웨어 1순위인지 알겠음. 접근 로그 보면 /something/something.php?somearg=someval 형태 스팸이 계속 들어옴.
워드프레스가 후보군에 드는 건 구조적이기도 함. 인터넷에서 제일 흔한 만큼 제일 공격받고 제일 많이 털리는 거라서.
HN은 워드프레스 까는 게 리플렉스 수준이긴 함. whitehouse.gov 같은 대형 공격 표적도 워드프레스로 돌리는데, 아는 사람이 쓰면 괜찮음.
그래도 워드프레스에 PHP/MySQL 조합은 역사적으로 털린 게 많아서, 2027년쯤엔 최상위 CMS 아닐 듯.
패치 커밋은 9c4e85임. 근데 PHP에 타입 선언이 나온 지 11년이 됐는데 워드프레스가 아직도 못 쓰는 게 신기함. 수정을 보여주는 테스트도 넣어줬으면 좋았을 텐데.
나도 워드프레스 버리고 Codex한테 Hugo 템플릿으로 다시 짜게 해서 정적 호스팅으로 갔는데 스트레스가 확 줄었음.
장난이면 미안한데, 모르는 사람을 위한 얘기인데 Hugo도 11일 전에 CVSS 9.3짜리 취약점이 두 개 터졌음. CVE-2026-89259랑 CVE-2026-89258임.