[단독방어] 분석 — CVE-2020-11738
The unauthenticated directory‑traversal in Snap Creek Duplicator (CVE-2020-11738) allows remote file read and must be blocked immediately, with detection rules deployed in logs/WAF and layered mitigation until patching.
📋 요약
- 심각도 high · CVSS 7.5 · EPSS 0.97822 · 악용난이도 easy · KEV
🔍 공격 기법
Snap Creek Duplicator 플러그인의 duplicator_download 또는 duplicator_init 엔드포인트에 전달되는 file 파라미터에 ../ 시퀀스를 포함시켜 디렉터리 탐색을 수행합니다. 인증이 필요 없으며 원격에서 직접 HTTP GET 요청만으로 서버 파일 시스템의 임의 경로를 읽어올 수 있습니다.
악용 가능성: CVSS 벡터 AV:N은 원격 네트워크만으로 접근 가능함을 의미하고, AC:L은 공격 복잡도가 낮아 기본적인 URL 조작만으로 충분함을 나타냅니다. PR:N과 UI:N은 사전 권한이 전혀 필요 없으며 사용자 개입 없이 자동화된 요청만으로도 성공할 수 있음을 보여줍니다. EPSS 값 0.97822는 실제 환경에서 이 취약점이 악용될 확률이 97.8%에 달한다는 통계적 근거이며, KEV 등재는 이미 확인된 악성 활용 사례가 존재함을 증명합니다. 공격자는
💥 영향 분석
공격자가 성공하면 웹 루트 외부의 민감한 파일(예: /etc/passwd, wp‑config.php 등)을 다운로드할 수 있어 사이트 소스 코드 유출·관리자 자격 탈취·추가 악성코드 설치 등의 위험이 발생합니다. 읽기 권한만 요구되므로 데이터 무결성 자체는 변조되지 않지만, 정보 노출로 인한 2차 공격 가능성이 크게 증가합니다.
🔗 관련 취약점·체이닝
추정: 동일한 Path‑Traversal(CWE-22) 패턴은 다른 워드프레스 플러그인이나 PHP 파일 업로드 기능에서도 발견될 수 있습니다. 이러한 유형의 취약점과 결합하면, 예를 들어 임시 파일을 통한 원격 코드 실행(코드 인젝션) 등으로 체이닝이 가능할 전망입니다.
🔎 탐지
-
로그 지표
- 웹 서버(access.log):
GET /wp‑content/plugins/duplicator/*?file=...요청의uri와query_string필드에../문자열이 포함된 경우. - WordPress debug log 또는 PHP error log:
Warning: file_get_contents()혹은include()호출 시 경로가 비정상적으로 변환되었다는 메시지.
- 웹 서버(access.log):
-
SIEM 탐지 규칙 예시
- 패턴 기반 쿼리 (Splunk)
1index=web sourcetype=access_combined 2uri_path="/wp-content/plugins/duplicator/duplicator_download" OR uri_path="/wp-content/plugins/duplicator/duplicator_init" 3query_string="*file=*../*" 4| stats count by src_ip, uri_path, query_string- 정규식 탐지 (ELK)
1{ 2 "query": { 3 "bool": { 4 "must": [ 5 {"wildcard": {"request.uri.path": "*duplicator_download*"}}, 6 {"regexp": {"request.query_string": ".*file=.*\\.\\./.*"}} 7 ] 8 } 9 }10}- 오탐 튜닝
- 정상적인 백업/복구 작업에서
../가 포함될 수 있으므로, 내부 관리 IP(예: 10.0.0.0/8) 혹은 인증된 관리자 세션(wp_user)을 화이트리스트에 추가합니다. - 요청 빈도가 높은 경우(예: >5건/분)만 알림을 발생시켜 노이즈를 감소시킵니다.
- 정상적인 백업/복구 작업에서
- 검증 방법
- 탐지 규칙 적용 후, 테스트 환경에서
../wp-config.php파일을 요청해 로그에 해당 이벤트가 기록되는지 확인합니다. - 정상 트래픽에서는 경보가 발생하지 않는지 실시간 모니터링합니다.
- 탐지 규칙 적용 후, 테스트 환경에서
🛡️ 완화 방안
-
즉시(긴급 차단)
- 웹 서버 수준에서
.htaccess혹은nginx설정에 다음 규칙을 추가하여../포함 요청을 403 응답으로 차단합니다.- Apache:
RewriteCond %{QUERY_STRING} (^|&)file=.*\.\./ [NC]→RewriteRule ^ - [F] - 난이도 ★☆☆, 운영 영향 Minimal (즉시 적용 가능), 검증 차단 테스트 URL 호출 시 403 확인.
- Apache:
- 웹 서버 수준에서
-
단기(완화)
- 플러그인 설정에서 “Allow unauthenticated download” 옵션을 비활성화하고,
duplicator_download·duplicator_init엔드포인트에 기본 인증(예: HTTP Basic) 또는 IP 제한을 적용합니다.- 난이도 ★★☆☆, 운영 영향 일부 관리자 작업에 추가 인증 필요, 검증 인증 없이 접근 시 401/403 확인.
- 플러그인 설정에서 “Allow unauthenticated download” 옵션을 비활성화하고,
-
근본(해결)
- Snap Creek Duplicator 플러그인을 공식 패치 버전(> 1.3.28 또는 > 3.8.7.1)으로 업데이트하고, 워드프레스 코어와 모든 플러그인을 최신 상태로 유지합니다.
- 난이도 ★★★☆☆, 운영 영향 플러그인 재설정·백업 필요(일시적 다운타임 가능), 검증 버전 확인(
wp plugin list) 및 취약점 스캐너 재검사.
- 난이도 ★★★☆☆, 운영 영향 플러그인 재설정·백업 필요(일시적 다운타임 가능), 검증 버전 확인(
- Snap Creek Duplicator 플러그인을 공식 패치 버전(> 1.3.28 또는 > 3.8.7.1)으로 업데이트하고, 워드프레스 코어와 모든 플러그인을 최신 상태로 유지합니다.
-
잔여 리스크
- 패치 적용 전까지는 위 즉시/단기 조치를 유지해야 하며, 플러그인 외부에서 동일한 경로 탐색 로직이 존재한다면 추가적인 파일 접근 제어가 필요합니다.
-
인시던트 대응 플레이북
1️⃣ 로그에서../포함 요청 감지 → 알림 발생.
2️⃣ 해당 IP와 세션을 차단하고, 웹 서버 오류 로그 확인해 파일 노출 여부 파악.
3️⃣ 임시 차단 규칙 적용 후, 관리자에게 플러그인 업데이트 일정 보고.
4️⃣ 패치 완료 시 차단 규칙 해제 및 재검증.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=7.5 · KEV · EPSS=0.97822 · exploit=easy · in_scope=None