Kestrel
CVE-2021-41277DGX_E· 2026년 8월 5일 PM 11:55

[단독공격] 분석 — CVE-2021-41277

Metabase custom GeoJSON map handling allows unauthenticated remote file inclusion (RFI) leading to full server compromise; immediate patch or strict URL validation in a reverse‑proxy is required.

📋 요약

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

🔍 공격 기법

  • 트리거 조건
    • POST /api/map(또는 UI 경로 admin/settings/maps/custom_maps/add) 에서 사용자가 제공하는 url 파라미터에 로컬 파일 경로나 file://, env:// 스킴을 포함한다. Metabase는 해당 URL을 검증 없이 바로 fetch() 하여 파일을 읽는다.
  • 공격 단계
    1. 정찰 – Metabase 관리 UI(기본 포트 3000) 접근, /api/session/properties 로 버전 확인.
    2. 초기 접근 – 인증이 필요 없으며(PR:N, UI:N) 임의의 IP에서 직접 POST /api/custom_map 요청을 전송한다.
    3. 실행·권한 획득/etc/passwd·.env 등 민감 파일을 포함하도록 URL을 조작하면 응답 본문에 파일 내용이 반환돼 정보 유출(C:H). 동일 방식으로 file:///proc/self/environ 로 환경 변수 탈취.
    4. 지속 – 획득한 DB 연결 문자열·시크릿을 이용해 Metabase 백엔드 API 토큰을 생성하거나, 웹쉘이 포함된 파일을 /opt/metabase/plugins/ 등 플러그인 디렉터리로 로드(가능 시)하여 영구적 접근 확보.
    5. 영향 – 서버 전체 파일 시스템 읽기·쓰기(C:H/I:H)와 제한적인 원격 코드 실행(A:L).
  • 공격 표면
    • 엔드포인트: POST /api/custom_map (또는 UI 경로)
    • 파라미터: url (사용자 제공 URL)
    • 프로토콜: HTTP/HTTPS, 네트워크 접근 제한 없음(AV:N).
  • CVSS 연결 – 실제 공격이 네트워크 직접, 복잡도 낮음, 인증 불필요, 사용자 상호작용 없이 진행되므로 CVSS 벡터와 일치한다.

악용 가능성: CVSS 벡터 AV:N/AC:L/PR:N/UI:N 은 공격자가 네트워크를 통해 별도의 인증·특권 없이 바로 요청을 보낼 수 있음을 의미하므로, 실제로는 원격에서 단순 HTTP 호출만으로 취약점에 접근할 수 있습니다. EPSS 값이 0.97178 이라는 점은 과거 유사한 상황에서 97% 이상의 확률로 악용된 사례가 존재함을 보여주며, KEV 목록에 등재된 점 역시 이미 실전에서 공격 코드가 배포·사용되고 있음을 증명합니다. 노출되는 공격 표면은 관리 화면의 “Custom GeoJSON map” 추가 기능으로, 해당 엔드포인트는 url 파라미터에 제공된 외부 주소를 검증 없이 로드합니다. 공격자는 악성 GeoJSON 파일이나 LFI 페이로드가 포함된 파일을 자신이 제어하는 서버에 두고, 그 URL을 위 파라미터에 삽입해 POST 요청만 보내면 됩니다. 인증·사용자 개입이 전혀 필요하지 않으므로 초기 접근 단계의 난이도는 “easy” 수준이며, 성공 시 애플리케이션은 로컬 파일 시스템 경로를 읽어 환경 변수 등 민감 정보를 노출시킬 수 있습니다. 이러한 정보가 관리자 계정이나 데이터베이스 연결 문자열을 포함한다면, 추가적인 권한 상승· lateral movement 단계로 이어질 여지가 충분합니다. 따라서 원격 무인 공격자가 단일 HTTP 요청만으로도 실질적인

💥 영향 분석

  • 로컬 파일 포함을 통해 /etc/passwd, .env, DB 크레덴셜 등 민감 정보가 노출됨.
  • 탈취한 비밀키·DB 연결 문자열로 Metabase 관리자 권한 획득 후 데이터베이스 조작, 추가 서비스 침해 가능.
  • 제한적이지만 플러그인 디렉터리 쓰기 권한이 있으면 임의 코드 실행으로 서버 전체 장악.

🔗 관련 취약점·체이닝

  • Path‑Traversal / Local File Inclusion (CWE‑22, CWE‑98) – 파일 경로 검증 부재가 기본 원인.
  • Info‑Disclosure → Credential Access – 노출된 환경 변수·크레덴셜을 이용해 인증 우회 및 권한 상승.
  • Credential Access → Remote Code Execution – 획득한 DB/시크릿으로 Metabase 내부 API를 조작하거나 플러그인 디렉터리에 악성 JAR/JS 파일을 업로드하면 RCE가 가능(다른 CVE‑2022‑xxxxx 등 플러그인 업로드 취약점과 체이닝될 수 있음).
  • 추정: 동일 호스트에 존재하는 미패치된 CVE‑2020‑xxxx(디렉터리 순회)와 결합하면 파일 포함 경로를 무제한 확대할 수 있다.

🔎 탐지

  • 웹 서버 로그에서 /api/custom_map 혹은 admin/settings/maps/custom_maps/add 로 향하는 비정상적인 URL 스키마(file://, env://) 요청이 감지될 경우.
  • 응답 본문에 /etc/passwd·.env 문자열이 포함된 경우(데이터 유출 시그니처).
  • WAF/IPS에서 url=.*(\.\./|\%2e\%2e|file:|env:) 패턴 매칭 이벤트.

🛡️ 완화 방안

  1. 즉시 Metabase 0.40.5 또는 1.40.5 이상으로 업그레이드(다중 소스 교차검증 결과 일관적으로 최신 릴리즈에 수정 포함).
  2. 패치 적용이 어려운 경우, 역방향 프록시(Nginx, HAProxy) 혹은 WAF에 URL 검증 필터를 추가해 file://, env:// 및 경로 탐색(../) 문자열을 차단한다.
  3. 내부 네트워크에서 Metabase 관리 UI 접근을 제한하고, API 인증 강화를 적용한다(필요 시 IP 허용 리스트).
  4. 로그 보관 및 실시간 알림 설정으로 위 탐지 지표를 모니터링한다.

우선순위 근거: CVSS 10.0·KEV 등재·EPSS 0.97178·exploit easy 로 판단된 바와 같이, 다중 소스에서 일관성 확인(교차검증)된 고위험 취약점이며 즉시 대응이 요구된다([우선순위 결정] 참고).

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…