TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 22 READS

인증 없이 뚫리는 워드프레스 경로 탐색 취약점, 조건부 RCE로 이어진다

인증 없이 뚫리는 워드프레스 경로 탐색 취약점, 조건부 RCE로 이어진다
SOURCE IMAGE · HACKER NEWS

워드프레스에서 인증되지 않은 공격자가 활성 테마 디렉터리 바깥에 있는 임의의 읽기 가능한 로컬 .php 파일을 페이지 템플릿 처리 과정에 끼워 넣을 수 있는 취약점이 공개됐다. 워드프레스 개발팀의 보안 권고에 따르면, 이 문제는 get_page_template() 함수가 페이지 템플릿을 해석하는 방식에서 비롯되며, 특정 조건이 맞을 경우 원격 코드 실행(RCE)까지 이어질 수 있다. 취약점을 발견해 책임 있게 제보한 사람은 로버트 레슬(Robert Ressl)이다.

무엇이 문제인가

워드프레스는 페이지마다 어떤 템플릿 파일을 써서 화면을 그릴지 결정하는 로직을 가지고 있다. 이 과정에서 사용되는 것이 get_page_template()이며, 정상적인 상황이라면 현재 활성화된 테마 폴더 안에 있는 템플릿 파일만 후보가 되어야 한다. 그러나 이번 취약점은 이 경계를 벗어나, 서버에 존재하는 다른 위치의 .php 파일을 공격자가 지정해 포함시키도록 만들 수 있다는 점이 핵심이다. 이렇게 임의의 로컬 파일을 실행 경로에 넣는 것은 전형적인 경로 탐색(path traversal)이자 로컬 파일 인클루전(LFI) 패턴이며, PHP 환경에서 include 계열로 파일이 실행되면 곧바로 코드 실행 위험으로 연결된다.

특히 주목할 부분은 이 공격이 인증을 요구하지 않는다는 점이다. 로그인 계정이나 관리자 권한 없이도 시도할 수 있다는 뜻이며, 그만큼 인터넷에 노출된 워드프레스 사이트라면 잠재적 공격 표면이 넓어진다. 다만 파일이 이미 서버에 존재하고 웹 서버 프로세스가 읽을 수 있어야 한다는 전제가 붙는다.

'조건부' RCE라는 단서

권고문이 강조하는 표현은 '조건부(conditional)'다. 임의 파일을 템플릿 처리에 포함시키는 것 자체는 가능하지만, 이것이 실제 원격 코드 실행으로 이어지려면 서버 환경과 활성 테마 양쪽에서 관련 전제 조건이 모두 충족되어야 한다. 즉 공격자가 실행 가능한 악성 코드가 담긴 .php 파일을 이미 읽을 수 있는 위치에 확보해 둔 상태여야 하고, 사용 중인 테마의 구성이 이 처리 경로를 타도록 맞아떨어져야 한다. 이런 조건이 모두 성립하지 않는 사이트에서는 정보 노출이나 오작동 수준에 그칠 수 있다.

그러나 실무 관점에서 '조건이 까다롭다'는 말을 안심의 근거로 삼아서는 안 된다. 공유 호스팅처럼 여러 사이트가 한 서버에 얹혀 있거나, 업로드 디렉터리에 사용자가 파일을 올릴 수 있는 구성, 이미 다른 취약점으로 파일이 서버에 심어진 상황 등에서는 전제 조건이 의외로 쉽게 갖춰질 수 있다. 하나의 취약점이 단독으로는 낮은 위험이어도, 다른 결함과 엮이면 완전한 서버 장악으로 확대되는 것이 웹 공격의 일반적 양상이다.

대응 방법과 적용 범위

워드프레스는 이 취약점을 수정한 7.1.2 버전을 배포했다. 또한 구버전 브랜치를 쓰는 사용자를 위한 조치로, 수정 사항을 4.7 브랜치까지 모든 계열에 백포트했다. 오래된 메이저 버전에 묶여 있어 즉시 최신 버전으로 올리기 어려운 환경이라도, 자신이 쓰는 브랜치의 최신 패치 버전으로 갱신하면 해당 수정이 반영된다는 의미다. 관리자는 우선 사이트의 워드프레스 코어 버전을 확인하고, 해당 브랜치의 패치가 적용된 릴리스로 즉시 업데이트하는 것이 가장 확실한 대응이다.

업데이트가 당장 어려운 경우라면, 웹 애플리케이션 방화벽에서 페이지 템플릿 파라미터를 겨냥한 경로 탐색 시도를 차단하고, 업로드 디렉터리에서 PHP 실행을 막으며, 웹 서버 프로세스의 파일 읽기 권한을 최소한으로 조이는 방식으로 노출을 줄일 수 있다. 다만 이는 임시 완화책일 뿐 근본 해결이 아니므로, 코어 업데이트를 지연시킬 명분이 되지는 못한다.

한계도 분명히 해 둘 필요가 있다. 공개된 권고는 취약한 함수와 조건부 RCE라는 성격, 영향 받는 버전 범위, 제보자 정보를 밝히고 있으나, 실제 익스플로잇의 구체적 절차나 어떤 서버·테마 조합에서 실행까지 이어지는지에 대한 세부 사항은 담고 있지 않다. 따라서 개별 사이트가 실제로 RCE까지 노출되는지 자체 판단하기는 쉽지 않으며, 조건 충족 여부를 따지며 시간을 끌기보다는 패치 적용을 기본 원칙으로 삼는 편이 안전하다. 인증이 필요 없는 취약점이라는 점만으로도 우선순위를 높여 다룰 이유는 충분하다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/WordPress/wordpress-develop/security/advi...
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...