Kestrel
CVE-2021-41277DGX_1· 2026년 8월 5일 PM 11:51

[방어] 분석 — CVE-2021-41277

Unauthenticated LFI via Metabase's custom GeoJSON map feature allows critical system file exfiltration, necessitating an immediate WAF filter for path traversal patterns and urgent patching to version 0.40.5/1.40.5.

📋 요약

  • 심각도 critical · CVSS 10.0 · EPSS 0.97178 · 악용난이도 easy · KEV

🔍 공격 기법

공격자는 admin -> settings -> maps -> custom maps -> add a map 설정 메뉴에서 GeoJSON 지도를 로드할 때 사용하는 URL 입력 필드에 검증되지 않은 경로를 주입합니다.

  • 경로: 외부망 $\rightarrow$ Metabase HTTP 엔드포인트 $\rightarrow$ /api/maps/ 관련 파라미터 $\rightarrow$ ../ (Path Traversal) 페이로드 주입.
  • 원리: 애플리케이션이 입력된 URL을 필터링 없이 파일 시스템 경로로 처리하여 Local File Inclusion(LFI)을 유발합니다.
  • 단계: Path Traversal $\rightarrow$ 민감 파일(/etc/passwd, .env 등) 읽기 $\rightarrow$ DB 자격 증명 및 환경 변수 탈취 $\rightarrow$ 내부망 권한 확장.

악용 가능성: 본 취약점의 공격 난이도는 매우 낮으며(Easy), 실제 악용 가능성은 극히 높습니다. CVSS 벡터 AV:N/AC:L/PR:N/UI:N이 나타내듯, 네트워크를 통해 인증되지 않은 외부 공격자가 특별한 사용자 상호작용 없이도 즉시 공격을 수행할 수 있는 조건입니다. 특히 EPSS 수치가 0.97178로 매우 높고 KEV(Known Exploited Vulnerabilities)에 등재되었다는 점은, 이론적 위험을 넘어 이미 실제 환경에서 공격 도구가 유포되고 활발히 악용되고 있음을 입증합니다. 공격 표면은 Metabase의 Custom GeoJSON Map 설정 기능(admin->settings->maps->custom maps) 내 지도 파일 경로를 입력받는 엔드포인트와 파라미터에 집중되어 있습니다. 공격자는 검증되지 않은 URL 입력 필드에 로컬 파일 경로를 주입함으로써 Local File Inclusion(LFI)을 유발하고, 서버 내 민감한 설정 파일이나 환경 변수(environment variables)를 탈취할 수 있습니다. 결과적으로 낮은 진입 장벽과 높은 자동화 가능성으로 인해 패치되지 않은 모든 노출 자산은 즉각적인 위협에 놓여 있습니다.

💥 영향 분석

  • 시스템 정보 유출: /etc/passwd, /proc/self/environ 등 OS 레벨의 민감 파일 및 프로세스 환경 변수가 노출됩니다.
  • 자격 증명 탈취: .env 또는 설정 파일을 통해 데이터베이스 연결 문자열, API 키를 획득하여 DB에 직접 접근할 수 있습니다.
  • 권한 확장: 추정: metabase.db 파일 자체를 덤프할 경우 내부 사용자 세션 및 관리자 정보가 노출되어 RCE(원격 코드 실행)로 이어지는 결정적 경로가 됩니다.

🔗 관련 취약점·체이닝

  • 패턴: Path Traversal $\rightarrow$ LFI $\rightarrow$ Credential Theft $\rightarrow$ Lateral Movement.
  • 단순 파일 읽기에서 그치지 않고, 탈취한 자격 증명을 이용해 클라우드 메타데이터 서비스(IMDS)나 내부 API로 공격 범위를 확장하는 체이닝이 전형적입니다.

🔎 탐지

다중 소스 데이터 일관성이 확인되었으며, 특히 EPSS 0.97178은 이론적 심각도와 별개로 실제 야생에서 악용될 확률이 극도로 높음을 뜻합니다. KEV 등재 사실과 결합하여 즉시 탐지를 가동해야 합니다.

1. 로그 지표 및 모니터링 대상

  • 로그 위치: WAF, Reverse Proxy (Nginx/Apache), Metabase Application Log.
  • 핵심 필드: request_uri, query_string, POST body (GeoJSON 설정 업데이트 요청).
  • 탐지 패턴: /api/maps/ 또는 /settings/maps/ 경로로 유입되는 상위 경로 탐색 문자열 및 시스템 파일 경로.

2. 탐지 규칙 예시 (SIEM 의사코드)

sql
1-- Rule 1: Path Traversal & LFI Payload Detection
2SELECT timestamp, src_ip, request_uri, payload
3FROM web_logs
4WHERE (request_uri LIKE '%/api/maps/%' OR request_uri LIKE '%/settings/maps/%')
5 AND (payload REGEXP '(\.\.\/|\/etc\/passwd|\/proc\/self\/environ|\.env|metabase\.db)')
6
7-- Rule 2: Exfiltration via Response Size Anomaly (추정 기반)
8SELECT src_ip, request_uri, response_size, status_code
9FROM web_logs
10WHERE request_uri LIKE '%/api/maps/%'
11 AND status_code = 200
12 AND response_size > [평균 GeoJSON 설정 파일 크기 * 5]

3. 오탐 튜닝 및 주의사항

  • 오탐 시나리오: 정상적인 커스텀 지도 URL에 ..이 포함된 경로가 사용되는 경우.
  • 튜닝 방법: 단순 ../ 탐지보다 /etc/, /proc/, .env 등 시스템 핵심 파일 경로와 결합된 패턴을 우선순위로 둡니다. 특히 비인가 외부 IP에서 관리자 설정 API에 접근하는 요청을 최우선 경보 대상으로 지정합니다.

🛡️ 완화 방안

CVSS 10.0, KEV 등재, EPSS 0.97178 및 Easy 난이도를 근거로 Immediate(24시간 내) 대응이 필수적입니다.

1. 즉시 (긴급 차단) - 최우선 적용

  • 조치: WAF 또는 Reverse Proxy에서 ../, /etc/passwd, .env 등이 포함된 요청을 즉시 Drop 하는 필터링 룰(Regex) 적용.
  • 난이도: 낮음 / 운영 영향: 거의 없음 / 검증: curl 등을 이용해 Path Traversal 페이로드 전송 시 403 Forbidden 응답 확인.

2. 단기 (위험 완화)

  • 조치: Metabase 관리자 설정의 'Custom Maps' 기능을 비활성화하거나, 해당 API 엔드포인트(/api/maps/*)에 대해 신뢰할 수 있는 내부 관리자 IP만 접근 가능하도록 ACL 제한.
  • 난이도: 보통 / 운영 영향: 커스텀 지도 기능 사용 불가로 인한 업무 마찰 발생 가능 / 검증: 외부망에서 해당 엔드포인트 접근 차단 확인.

3. 근본 (해결)

  • 조치: 공식 패치 버전(0.40.5, 1.40.5 및 이후 최신 버전)으로 즉시 업그레이드.
  • 난이도: 보통 / 운영 영향: 서비스 재시작에 따른 일시적 가용성 저하 / 검증: version 확인 및 Path Traversal 페이로드 무효화 테스트.

잔여 리스크: 패치 전 이미 침해되었을 가능성이 큽니다. 패치 후에도 탈취된 DB 자격 증명이 사용될 수 있으므로, DB 계정 비밀번호 변경 및 API 키 로테이션을 반드시 수행하십시오.

⚖️ 위험도 / 우선순위

  • 조치: immediate (지금 즉시(24h 내))
  • 근거: CVSS=10.0 · KEV · EPSS=0.97178 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…