
WordPress는 2026년 9월 22일, 로그인 없이도 공격자가 웹사이트에서 외부 PHP 파일을 불러오게 할 수 있는 심각한 취약점(CVE-2026-87902)을 수정한 보안 업데이트(버전 7.1.2)를 배포했습니다. CVSS 점수 9.2로 매우 위험하며, 서버 설정에 따라 공격자가 원하는 코드를 실행(RCE, 원격 코드 실행)하는 것도 가능합니다. WordPress 4.7.0부터 7.1.1까지 모든 버전이 영향을 받으며, 불과 일주일 전에 업데이트한 사이트도 다시 업데이트가 필요합니다. 현재까지 실제 공격에 활용된 사례나 공개된 개념 증명(PoC) 익스플로잇은 보고되지 않았으나, 즉시 최신 버전으로 업데이트하는 것이 유일한 대응책입니다.
WordPress 핵심 소프트웨어에서 인증 없이 악용 가능한 경로 순회(Path Traversal) 취약점(CVE-2026-87902)이 발견됐다. 공격자는 웹 주소의 일부 값을 조작해 WordPress가 테마 폴더 외부의 PHP 파일을 불러오도록 유도할 수 있다.
4.7.0~7.1.1 전 버전이 영향을 받으며, 서버 설정(특정 테마 폴더 구조 및 register_argc_argv 옵션 활성화)에 따라 원격 코드 실행(RCE)까지 이어질 수 있다. 현재까지 실제 악용 사례나 PoC는 공개되지 않았다.
WordPress가 페이지 템플릿 파일 이름을 생성할 때 웹 주소에서 가져온 값에 대해 '../' 경로 순회 차단 검사를 수행하지 않은 것이 원인이다. 인접한 코드에는 해당 검사가 이미 존재했으나 이 경로에는 누락돼 있었다.
WordPress는 9월 22일 7.1.2를 포함한 각 브랜치별 패치 버전을 배포했으며, 4.7 브랜치까지 소급 적용됐다. 별도의 임시 완화 방법은 없으며 업데이트가 유일한 해결책이다.
자동 업데이트가 꺼진 사이트는 대시보드 또는 WordPress.org에서 즉시 수동 업데이트해야 한다. Patchstack은 활성 테마의 최상위 폴더 중 'page-'로 시작하는 폴더 존재 여부와 PHP의 register_argc_argv 설정 활성화 여부를 점검해 노출 수준을 가늠할 것을 권고했다.
본문
Swati Khandelwal 2026년 9월 22일 | 취약점 / 웹 보안
WordPress가 계정 없는 공격자가 사이트로 하여금 테마 폴더 외부의 PHP 파일을 불러오게 할 수 있는 핵심 소프트웨어의 심각한 취약점을 수정했다.
일부 서버에서는 이 취약점이 더 나아가 공격자가 자신의 코드를 실행할 수 있는 단계까지 이어질 수 있다. 수정 사항은 9월 22일 WordPress 7.1.2에 포함돼 배포됐으며, 프로젝트가 여전히 지원하는 4.7 버전까지 모든 브랜치에 패치가 적용됐다. WordPress는 사이트 소유자에게 즉시 업데이트할 것을 촉구하고 있다.
WordPress는 이 취약점을 심각(critical)으로 분류하고 CVSS 점수 9.2를 부여했으며, CVE-2026-87902를 할당했다. 이 취약점은 계정 없이도, 로그인한 사용자의 행동 없이도 악용이 가능하다.
4.7.0부터 7.1.1까지 모든 버전이 영향을 받는다. 9월 17일 WordPress 보안 릴리스에서 배포된 7.1.1도 포함되므로, 일주일 이내에 업데이트한 사이트도 이번 업데이트가 필요하다. 이번 취약점은 해당 릴리스에서 수정된 것들과는 별개의 결함이다.
업데이트 대상 버전은 현재 운영 중인 브랜치에 따라 다르다:
| 현재 브랜치 | 업데이트 버전 |
|---|---|
| 7.1.x | 7.1.2 |
| 7.0.x | 7.0.6 |
| 6.9.x | 6.9.9 |
| 6.8.x | 6.8.10 |
| 6.7.x | 6.7.9 |
| 6.6.x | 6.6.9 |
WordPress는 지원 중인 모든 구버전 브랜치에 패치를 소급 적용했으며, 4.7.37까지 내려간다. 전체 목록은 릴리스 노트에서 확인할 수 있다.
자동 백그라운드 업데이트가 활성화된 사이트는 자동으로 업데이트가 시작된다. 그 외의 사이트는 대시보드의 업데이트 메뉴에서 수동으로 업데이트하거나, WordPress.org에서 릴리스 파일을 직접 다운로드할 수 있다. WordPress는 별도의 임시 완화 방법을 제공하지 않으므로, 업데이트가 유일한 해결책이다.
로컬 PHP 파일을 불러오면 해당 파일에 이미 정의된 동작이 실행된다. 이것이 공격자가 원하는 코드 실행으로 이어지려면 두 번째 조건이 필요하다. 서버에 불러왔을 때 유용한 동작을 수행하는 PHP 파일이 이미 존재해야 한다. WordPress 설명의 "일부 서버"라는 표현이 바로 이를 가리키며, 영향을 받는 모든 사이트에서 완전한 코드 실행이 가능하지 않은 이유이기도 하다.
이 취약점은 WordPress가 페이지의 템플릿 파일을 선택하는 방식에 있다. 파일 이름 중 하나가 웹 주소의 일부 값으로 구성되는데, 영향을 받는 버전에서 WordPress는 해당 값에 대해 '../' 경로 순회(traversal) 단계를 차단하는 자체 검사를 수행하지 않았다. 이 검사는 인접한 코드에서는 이미 사용되고 있었다.
파일 이름이 page-{값}.php 형태로 생성되기 때문에, 공격이 성공하려면 활성 테마에 page-로 시작하는 이름의 최상위 폴더가 있어야 하고, 대상 파일이 .php로 끝나야 한다. 일부 테마, 특히 오래된 WordPress 기본 테마에는 이 조건에 맞는 폴더가 포함돼 있다.
보안 업체 Patchstack은 자체 분석에서, 사이트 소유자가 노출 수준을 파악하기 위한 두 가지 점검 사항을 제시했다. 활성 테마에 page-로 시작하는 최상위 폴더가 있는지 여부, 그리고 PHP에서 register_argc_argv 설정이 켜져 있는지 여부다. 알려진 코드 실행 기법이 이 설정에 의존하기 때문이다.
Patchstack은 이 두 가지가 수정 방법이 아니라, 사이트가 최악의 시나리오에 얼마나 가까운지를 보여주는 지표라고 밝혔다. 해당 설정은 PHP 8.5에서는 기본적으로 꺼져 있으며, 구버전 PHP에서는 기본적으로 켜져 있다.
9월 22일 기준으로 이 취약점이 실제 공격에 사용됐다는 보고는 없으며, 공개된 개념 증명(proof-of-concept) 익스플로잇도 없고, 미국 CISA의 악용 확인 취약점(Known Exploited Vulnerabilities) 목록에도 등재되지 않았다.
WordPress는 이 취약점을 발견하고 신고한 Robert Ressl에게 감사를 표했다. The Hacker News는 WordPress와 Ressl에게 논평을 요청한 상태다.
같은 소식, 다른 매체 보도1건
관련 투런 솔루션
이 뉴스의 취약점·위협, 투런 솔루션으로 대응하세요.





