회사 홈페이지, 쇼핑몰, 랜딩 페이지를 워드프레스로 돌리고 있다면 이번 주 안에 버전을 확인하는 편이 맞습니다. 워드프레스 취약점 CVE-2026-87902는 로그인하지 않은 방문자가 페이지 템플릿 조회를 조작해, 조건이 맞으면 서버의 PHP 파일을 실행하게 만들 수 있습니다. 공식 패치는 2026년 9월 22일 공개됐고, 같은 날부터 공격 시도가 관측됐습니다.
한눈에 결론
- CVE-2026-87902는 워드프레스 코어의 페이지 템플릿 경로 순회·로컬 PHP 포함 결함입니다. CVSS v4.0 기준 9.2입니다.
- 영향 범위는 4.7.0부터 7.1.1까지입니다. 최신 패치는 7.1.2이며, 7.0.6 등 하위 분기에도 백포트됐습니다.
- 계정과 클릭이 필요 없습니다. 다만 원격 코드 실행은 테마 폴더 구조와 서버의 읽을 수 있는 PHP 파일이 겹칠 때입니다.
- 패치스택은 공개 수시간 안에 정찰·악용 시도가 시작됐고, 이후 트래픽이 첫날 저녁보다 10배 이상 늘었다고 밝혔습니다.
- 방화벽 규칙은 임시 완화입니다. 코어를 해당 분기 패치본으로 올린 뒤, 관리자·플러그인·업로드 폴더를 확인하세요.
이번 워드프레스 취약점이 다른 플러그인 구멍과 다른 점
플러그인 한 개의 권한이 아니라 코어 함수입니다. 워드프레스 보안팀은 2026년 9월 22일 7.1.2 보안 릴리스를 내면서, 인증되지 않은 공격자가 특정 조건에서 페이지 템플릿 해석이 활성 테마 밖의 읽기 가능한 로컬 PHP 파일을 포함하게 만들 수 있다고 설명했습니다. 서버와 활성 테마의 선행 조건이 맞으면 원격 코드 실행으로 이어질 수 있습니다.
식별자는 CVE-2026-87902, 권고는 GHSA-7hp8-65ch-5whp입니다. 취약점 유형은 CWE-98입니다. 파일 이름을 포함(include)할 때 경로를 테마 루트 안에 가두지 못한 문제입니다. 제보자는 로버트 레슬(Robert Ressl)입니다.
점수는 척도에 따라 갈립니다. 공식 권고의 CVSS v4.0은 9.2(Critical)입니다. CISA-ADP가 NVD에 올린 CVSS v3.1은 8.1(High, 공격 복잡도 높음)입니다. 점수가 갈리는 이유는 원격 코드 실행 자체가 항상 되는 게 아니라, 테마와 서버 환경이 맞아야 하기 때문입니다. 그래도 코어이고, 인증이 없고, 인터넷에서 닿는다는 점은 같습니다.
팩트체크
- 현재 판정: 사실(공식 보안 릴리스 + 실제 공격 시도 보도). 모든 사이트가 바로 장악된다는 주장은 과장입니다.
- 원출처: 워드프레스 7.1.2 릴리스 노트, GHSA-7hp8-65ch-5whp, CVE-2026-87902.
- 확인된 부분: 영향 버전(4.7.0–7.1.1), 패치 버전(7.1.2 및 4.7.37까지 백포트), 인증 불필요, RCE는 조건부.
- 확인된 공격 정황: 패치스택이 공개 직후 시도·타협 징후를 관측했다고 SecurityWeek가 보도. 워드펜스 인텔리전스는 공개 직후 24시간 차단 건수를 집계했습니다.
- 미확인 부분: 국내 침해 건수, CISA KEV 등재 여부(작성 시점 기준 공식 KEV 등재는 확인하지 못함), 특정 호스팅 업체별 일괄 패치 완료율.
7.1.1 이하면 무조건 뚫리나
코어가 취약한 것과, 지금 그 사이트가 장악 가능한 것은 다릅니다. 권고가 분리해서 적은 조건입니다.

조건 1. 활성 테마의 최상위 폴더
부모 테마 또는 자식 테마에 이름이 page-로 시작하는 최상위 디렉터리가 있어야 합니다. 공식 권고가 예시로 든 것은 레거시 Twenty Twelve, Twenty Fourteen과 서드파티 Neve, Hestia, Sydney입니다. 공통점은 page-templates처럼 최상위 폴더명이 page-로 시작한다는 점입니다.
테마 이름만으로 안전하다고 단정하면 안 됩니다. 자식 테마를 쓰거나, 커스텀 테마가 같은 폴더 규칙을 따라도 조건이 성립합니다. 반대로 예시 테마여도 폴더를 바꿨다면 조건이 빠질 수 있습니다. 확인은 테마 디렉터리 목록입니다.
조건 2. 서버에 읽을 수 있는 PHP 파일
웹 서버 계정으로 읽을 수 있는 로컬 .php 대상이 있어야 포함이 의미가 있습니다. 권고가 구체적으로 적은 경로는 PEAR의 pearcmd.php입니다. register_argc_argv가 On이면 잘 알려진 PEAR→코드 실행 경로로 이어질 수 있습니다.
공식 PHP 도커 이미지, PHP 8.5 미만의 기본 cPanel 구성이 이 조합에 해당한다고 권고에 적혀 있습니다. 공유 호스팅, 관리형 워드프레스, 직접 올린 도커 스택은 구성이 제각각입니다. “카페24·가비아라서 무조건 안전/무조건 위험”처럼 호스팅 상호만으로 판단할 수는 없습니다.
조건이 안 맞아도 업데이트가 필요한 이유
조건이 빠지면 즉시 원격 코드 실행은 어려워집니다. 그래도 취약한 조회 동작 자체는 코어에 남아 있습니다. 테마를 바꾸거나, 나중에 PEAR나 다른 PHP 파일이 생기거나, 공개된 스캐너가 다른 포함 대상을 찾으면 노출이 다시 열립니다. 워드펜스는 방화벽이 업데이트를 대체하지 않는다고 못 박았습니다.
| 항목 | 내용 |
|---|---|
| CVE | CVE-2026-87902 |
| 권고 | GHSA-7hp8-65ch-5whp |
| 유형 | 경로 순회 + 로컬 PHP 포함(CWE-98) |
| CVSS | v4.0 9.2 / v3.1(CISA-ADP) 8.1 |
| 인증 | 불필요 |
| 영향 버전 | 4.7.0 ~ 7.1.1 |
| 최신 패치 | 7.1.2 (2026-09-22) |
| 하위 분기 예 | 7.0.6, 6.9.9, 6.8.10 … 4.7.37 |
공개 당일부터 공격이 시작된 정황
기존 보안 업데이트와 다른 지점은 속도입니다. SecurityWeek가 인용한 패치스택 관측에 따르면, 공개 수시간 안에 첫 시도가 보였고 초기에는 소수 IP의 정찰이었습니다. 페이로드 인코딩이 패치 디프와 같아서, 별도 발견이 아니라 패치 내용을 보고 만든 요청으로 봤습니다.
이후 요청은 세 단계로 바뀌었습니다. 취약 여부 확인, pearcmd.php 포함 가능 여부 확인, 그다음 PHP 내용을 써서 코드 실행으로 넘어가는 흐름입니다. 패치스택은 트래픽이 첫날 저녁 대비 10배 이상으로 늘었고 대상 사이트도 넓어졌다고 했습니다. 공개 스캐너가 있어 시도는 더 늘어날 수 있습니다.
워드펜스 인텔리전스 항목에는 이 취약점을 겨냥한 공격을 공개 직후 24시간 동안 54만 283건 차단했다는 숫자가 올라와 있습니다. 차단 건수는 성공한 침해 건수가 아닙니다. 다만 스캔이 이미 대량으로 돌고 있다는 신호로는 충분합니다.
작성 시점 기준으로 미국 CISA KEV 등재는 확인하지 못했습니다. KEV에 없다고 우선순위가 낮아지는 것은 아닙니다. 인증 없는 코어 결함이고 공개 직후 악용 시도가 나온 상태입니다.
지금 할 일 순서
관리 화면이 열리면 아래 순서가 안전합니다. 관리 화면이 이상하면 호스팅 패널이나 SFTP로 파일만 먼저 백업하세요.

1. 코어 버전 확인
알림판 → 업데이트, 또는 알림판 → 워드프레스 정보에서 버전을 봅니다. 7.1.1 이하면 미패치입니다. 7.0.5, 6.9.8처럼 한 단계 아래 유지 버전도 같은 날 백포트 이전 번호면 미패치입니다.
파일로 확인할 때는 wp-includes/version.php의 $wp_version을 봅니다. 관리 화면이 느려지거나 이상 플러그인이 보여도 이 값이 기준입니다.

2. 파일과 DB 백업
테마·플러그인·업로드 폴더와 데이터베이스를 같이 뜹니다. 이미 침해됐을 가능성을 염두에 두면, 패치 재시작 전에 로그와 파일 목록을 남기는 편이 조사에 유리합니다. 호스팅 자동 백업이 있어도 시점과 범위를 확인하세요.
3. 해당 분기 패치 적용
가능하면 7.1.2로 올립니다. 테마·플러그인 호환 때문에 메이저를 못 올리면 현재 분기의 보안 번호만 올립니다. 공식 문서에 적힌 예시는 7.0.6, 6.9.9, 6.8.10, 6.7.9, 6.6.9, 6.5.12입니다. 4.7 계열까지 백포트가 나왔지만, 워드프레스는 최신 버전만 적극 지원한다고 반복해서 적었습니다. 4.x를 인터넷에 열어 둔 사이트는 이번 패치만으로 장기 운영 계획이 되지 않습니다.
알림판에서 ‘지금 업데이트’를 누르거나, WordPress.org에서 해당 버전을 받아 올립니다. 자동 백그라운드 업데이트를 쓰는 사이트는 시작은 자동이어도 완료 확인은 수동입니다.
4. 로그와 침해 흔적
웹 서버·WAF·보안 플러그인 로그에서 pagename 값에 경로 조작처럼 보이는 요청이 있었는지 봅니다. 구체적인 공격 문자열을 여기에 적지는 않습니다. 의심 요청이 보이면 사이트를 이미 열린 상태로 보고 다음을 확인합니다.
- 관리자·편집자 계정 중 모르는 사용자
- 설치하지 않은 플러그인, 이름이 난해한 mu-plugin
- 테마·업로드 폴더의 최근 수정 PHP
- 예약된 크론, 이상한 리다이렉트, 코어 파일 해시 불일치

누구에게 필요한가, 어디서 착각하기 쉬운가
직접 대상은 워드프레스 코어를 4.7.0~7.1.1로 돌리는 공개 사이트입니다. 대행사 유지보수 사이트, 카페24·가비아 같은 호스팅에 올린 회사 소개 페이지, 우커머스 쇼핑몰, 뉴스레터용 랜딩이 포함됩니다. 멀티사이트면 네트워크 전체를 한 번에 봐야 합니다.
정적 사이트 생성기만 쓰거나, 워드프레스를 로컬 개발에만 두고 외부에 안 연 경우는 긴급도가 낮습니다. 헤드리스로 REST만 열어도 프론트 쿼리 변수가 살아 있으면 예외가 아닙니다. “플러그인을 거의 안 써서 안전하다”는 이번 결함과 무관합니다.
자주 나오는 실수는 세 가지입니다. 자동 업데이트를 켜 두었으니 됐다고 보는 것, 테마가 Twenty Twenty-Four라서 해당 없다고 단정하는 것, 보안 플러그인 방화벽만 믿고 코어를 미루는 것입니다. 방화벽은 알려진 패턴을 줄일 뿐, 코어 함수의 경로 검증을 대신하지 않습니다.
호스팅에서 테마 폴더와 관리형 업데이트를 확인하는 방법
알림판이 느리거나 막혀 있어도 호스팅 파일 관리자로 충분합니다. 보통 경로는 wp-content/themes/테마폴더/입니다. 그 바로 아래 폴더 이름 목록을 봅니다. page-templates처럼 page-로 시작하는 최상위 폴더가 있으면 권고의 첫 조건에 해당할 수 있습니다. 자식 테마를 쓰면 부모와 자식 둘 다 봅니다.
관리형 워드프레스, 원클릭 설치, “자동 보안 패치” 상품이어도 면제 증명서는 아닙니다. 업체가 코어만 올리는지, 테마·플러그인만 올리는지, 적용 시각이 언제인지 패널에서 확인해야 합니다. 스테이징 사이트를 쓰는 팀은 운영본만 올리고 스테이징을 며칠 두는 습관이 있습니다. 이번처럼 공개 당일 스캔이 붙는 코어 결함은 스테이징 검증을 짧게 가져가는 편이 맞습니다.
PHP 환경은 호스팅 패널의 PHP 정보에서 register_argc_argv와 PEAR 포함 여부를 볼 수 있습니다. Off라고 해서 업데이트를 미룰 근거는 되지 않습니다. 다른 읽기 가능한 PHP 파일이 있으면 두 번째 조건은 다른 형태로 충족될 수 있습니다.
침해가 의심되면 패치와 계정 점검을 같은 날 처리하세요. 관리자 비밀번호와 애플리케이션 비밀번호를 바꾸고, 남긴 FTP·SFTP·패널 계정도 함께 봅니다. 호스팅 측에 악성 파일 스캔과 최근 변경 파일 목록을 요청하는 것이 혼자 파일 트리를 훑는 것보다 빠릅니다. 백업을 되돌릴 때는 침해 시점보다 앞선 백업인지 확인하지 않으면 웹셸을 같이 복원하게 됩니다.
확인일 기준 출처
이 글의 버전·조건·점수·제보자 정보는 워드프레스 7.1.2 릴리스 노트와 GHSA-7hp8-65ch-5whp, NVD CVE-2026-87902를 기준으로 했습니다. 공개 직후 공격 시도는 SecurityWeek가 전한 패치스택 관측, 차단 규모는 워드펜스 인텔리전스 항목을 구분해서 적었습니다. 확인일: 2026-09-24.
공식 업데이트: WordPress 7.1.2 Release · GHSA-7hp8-65ch-5whp · NVD CVE-2026-87902 · Wordfence PSA