DedeCMS 5.7 미만 버전 로컬 파일 포함(LFI) 취약점 분석 및 대응 가이드 (CVE-2010-20125)
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTDedeCMS 5.7 미만 버전을 사용하는 모든 웹 애플리케이션
인증되지 않은 원격 공격자가 경로 조작(Path Traversal)을 통해 서버 내부의 민감한 파일을 열람하거나 시스템 정보를 탈취할 수 있음
DedeCMS 5.7 이상 버전으로 즉시 업데이트하거나 취약한 PHP 스크립트의 변수 초기화 로직 수정
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
PATCH & WORKAROUND1. 최신 버전 업그레이드 DedeCMS 공식 홈페이지를 통해 v5.7 이상의 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
2. 임시 완화 조치 (코드 수정) 업데이트가 불가능한 경우, `plus/carbuyaction.php` 파일 상단에 `$code` 변수를 명시적으로 초기화하거나 입력값 검증 로직을 추가해야 합니다.
// plus/carbuyaction.php 수정 예시
$code = isset($code) ? preg_replace('/[^a-z0-9]/i', '', $code) : 'default';
if (!file_exists(DEDEPAY."/payment/{$code}.php")) {
exit('Invalid Payment Method');
}3. WAF(웹 방화벽) 설정 경로 조작 공격을 차단하기 위해 다음과 같은 패턴을 탐지 규칙에 추가하십시오. - `..%2f`, `..%5c`, `../../` 등 상위 디렉토리 접근 패턴 차단
코드 수정 전에도 가상 패치(Virtual Patching)로 웹 공격을 즉시 차단하세요
서버 재시작이나 긴급 패치가 어려운 운영 환경이라면 클라우드 WAF 관리형 룰셋을 활성화하여 SQLi, RCE, XSS 익스플로잇 페이로드를 엣지에서 1분 만에 차단할 수 있습니다.
취약점 발생 원리 및 공격 메커니즘
본 취약점은 DedeCMS의 plus/carbuyaction.php 파일에서 발생하는 로컬 파일 포함(LFI, Local File Inclusion) 취약점입니다. 취약점의 핵심 원인은 PHP의 require_once 함수에 전달되는 $code 변수가 적절히 초기화되지 않은 상태에서 외부 입력값에 의해 제어될 수 있다는 점입니다(CWE-98). 공격자는 URL 파라미터를 통해 ../../와 같은 상위 경로 이동 문자열을 주입함으로써, 결제 관련 디렉토리를 벗어나 /etc/passwd나 데이터베이스 설정 파일 등 서버 내 임의의 로컬 파일을 읽어들일 수 있습니다. 특히 2023년 하반기부터 해당 취약점을 노린 스캐닝 활동이 관측되고 있어, 오래된 버전을 유지 중인 서버는 즉각적인 조치가 필요합니다.
공식 보안 권고문 및 참조 링크
DedeCMS before 5.7 contains a file inclusion vulnerability in plus/carbuyaction.php that allows remote unauthenticated attackers to control the include path by manipulating the uninitialized code parameter passed to require_once. Attackers can supply path traversal sequences ../../ to include arbitrary local files outside the intended payment directory, potentially achieving local file disclosure. Exploitation evidence was first observed by the Shadowserver Foundation on 2023-10-18.
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.