WordPress: Unauthenticated path traversal leading to conditional RCE
WordPress 비인증 경로 순회 취약점, 조건에 따라 원격 코드 실행 가능
WordPress의 페이지 템플릿 탐색 과정에서 인증 없이 경로 순회를 일으켜 테마 디렉터리 밖의 PHP 파일을 불러올 수 있는 취약점이 발견됐습니다. 테마와 서버 설정 등 조건이 맞으면 원격 코드 실행으로 이어질 수 있으며, WordPress 7.1.2와 4.7 이후 각 브랜치에 수정 사항이 배포됐습니다.
- 주제
AI 요약
WordPress의 페이지 템플릿을 찾는 과정에 인증 없이 악용할 수 있는 경로 순회 취약점이 있습니다. 공격자는 get_page_template()의 템플릿 탐색을 조작해 활성 테마 디렉터리 밖에 있는, 웹 서버 계정이 읽을 수 있는 로컬 PHP 파일을 불러오게 할 수 있습니다. 특정 테마와 서버 환경이 함께 갖춰지면 원격 코드 실행(RCE)으로 이어집니다.
악용에 필요한 조건
활성 부모 테마나 자식 테마의 최상위에 이름이 page-로 시작하는 디렉터리가 있어야 합니다. 예로 page-templates가 있으며, Twenty Twelve와 Twenty Fourteen 같은 레거시 기본 테마와 Neve, Hestia, Sydney 등 일부 서드파티 테마가 영향을 받습니다.
또 공격자가 지정한 로컬 PHP 파일이 서버에 존재하고 웹 서버 계정이 읽을 수 있어야 합니다. 권고문은 register_argc_argv가 On인 환경에서 pearcmd.php를 이용하는 경로를 예로 들었습니다. 공식 PHP Docker 이미지와 PHP 8.5 이전 버전을 사용하는 기본 cPanel 설정이 이 조건에 해당할 수 있습니다.
패치
WordPress 7.1.2에 수정 사항이 포함됐습니다. 이전 버전을 사용하는 이용자를 위해 4.7까지 모든 브랜치에도 수정 사항을 백포트했습니다. 취약점은 Robert Ressl이 발견해 책임 있게 공개했습니다.
Hacker News 반응
- @system2 —
pearcmd.php가 있어야 하고register_argc_argv도 켜져 있어야 하므로 호스팅 업체에서 흔한 설정은 아닙니다. 다만 다른 테마와 조건까지 고려하면 영향을 받는 WordPress 사이트가 많을 수 있다고 봅니다.- @dofm — 글에서 지적했듯 공식 PHP Docker 컨테이너가 해당 설정을 사용합니다. 이론상 영향받는 버전은 자동 업데이트될 수 있지만, 4.7까지 실제로 자동 업데이트하는지는 확실하지 않습니다. 4.9.3은 자동 업데이트 기능에 버그가 있어 예외입니다.
- @tptacek — CVSS 점수는 의미가 없으며, 헤드라인에서 사라지는 편이 낫습니다. 일부 상황에서만 발생하고 몇몇 테마에 영향을 주는 WordPress RCE입니다.
- @paulez — 특정 조건을 만족하는 취약한 WordPress 환경에서 누구나 네트워크를 통해 코드를 실행할 수 있다는 뜻입니다. 그렇지 않습니까?
- @tptacek — 취약점이 심각하지 않거나 WordPress 운영자에게 중요하지 않다고 말하는 게 아닙니다. CVSS 점수는 평가자가 원하는 대로 나올 수 있는 점술판과 같습니다.
- @vntok — 영향을 받는 테마가 몇 개뿐이라는 말은 위험할 정도로 틀렸습니다. 테마 최상위에
page-로 시작하는 디렉터리를 두는 조건은 WordPress 공식 문서가 권장하는 구성입니다.- @dawnerd — 기본 제공 테마도 취약하고 PHP 8.5 이전 공식 Docker 이미지도 기본 설정에서 영향을 받습니다. 여러 호스팅 업체가 내부에서 이 이미지를 쓸 가능성도 있습니다.
- @whycome — 아주 오래된 테마가 예상치 못하게 업데이트된 이유가 이 취약점 때문일 수 있겠습니다.
- @patrickdavey — 패치 적용과 테마 취약성 확인을 둘 다 해야 하는지 확실하지 않습니다. 패치 자체를 보니 근본 원인을 고치는 듯해 테마 구성은 상관없을 것 같지만, 잘 읽었는지는 모르겠습니다.
- @chrismorgan — WordPress 7.1.1과 수정 버전의 비교 및 패치 커밋 링크를 공유했습니다.
- @mgkimsal — 수정 내용을 보여주는 테스트가 있었으면 좋았겠습니다.
원문: Hacker News / 번역·요약: Trawling