Kestrel
CVE-2026-29059DGX_3· 2026년 7월 27일 AM 02:02

[분석가] 분석 — CVE-2026-29059

An unauthenticated path traversal vulnerability in Windmill versions prior to 1.603.3 allows arbitrary file read via the get_log_file endpoint; immediate update to version 1.603.3 is required.

📋 요약

  • 심각도 high · CVSS 7.5 · EPSS 0.02608 · 악용난이도 moderate

🔍 공격 기법

  • 트리거 조건: /api/w/{workspace}/jobs_u/get_log_file/{filename} 엔드포인트의 {filename} 파라미터에 입력값이 전달될 때, 서버 측에서 적절한 Sanitization 없이 파일 경로를 생성하는 결함을 이용합니다.
  • 공격 단계:
    1. 정찰: 대상 서버의 Windmill 버전 및 /api/w/ 하위 엔드포인트 활성화 여부 확인.
    2. 초기 접근: 인증되지 않은 상태(Unauthenticated)에서 HTTP GET 요청 전송.
    3. 실행 (Arbitrary File Read): {filename} 파라미터에 ../ 시퀀스를 삽입하여 상위 디렉토리로 이동 후, 시스템 설정 파일이나 민감 데이터 파일 경로 지정.
  • 공격 표면:
    • Endpoint: /api/w/{workspace}/jobs_u/get_log_file/{filename}
    • Parameter: {filename} (Path)
    • Protocol: HTTP/HTTPS
  • CVSS 벡터 분석: AV:N/AC:L/PR:N/UI:N에 따라 네트워크를 통해 별도의 권한이나 사용자 상호작용 없이 낮은 난이도로 공격이 가능합니다.

악용 가능성: [공격 난이도 및 악용 가능성 분석]

본 취약점은 AV:N/AC:L/PR:N/UI:N 벡터가 시사하듯, 인증되지 않은 외부 공격자가 네트워크를 통해 특수하게 조작된 요청을 보내는 것만으로 트리거할 수 있어 공격 난이도가 매우 낮습니다. 특히 /api/w/{workspace}/jobs_u/get_log_file/{filename} 엔드포인트의 filename 파라미터에 대한 입력값 검증 부재로 인해, ../ 시퀀스를 이용한 Path Traversal 공격 표면이 직접적으로 노출되어 있습니다. EPSS 수치는 0.02608로 상대적으로 낮고 KEV(Known Exploited Vulnerabilities)에 등재되지 않아 현재 대규모의 야생 악용 사례는 미관측 상태입니다. 그러나 별도의 권한 없이 서버 내 임의 파일 읽기가 가능하다는 점에서, 설정 파일이나 환경 변수 탈취를 통한 2차 공격으로 이어질 가능성이 큽니다. 결과적으로 이론적 심각도는 높으나 실제 공격 빈도는 낮은 'Moderate' 등급의 위험도를 보이며, 노출된 API 엔드포인트가 외부망에 공개되어 있을 경우 즉각적인 악용 대상이 될 수 있습니다.

💥 영향 분석

  • 기술적 위험:
    • 데이터 유출: 서버 내 임의 파일 읽기가 가능하여 /etc/passwd, 환경 변수 파일(.env), 애플리케이션 설정 파일 등 민감 정보가 노출될 수 있습니다.
    • 추정: 유출된 설정 파일 내 DB 자격 증명이나 API Key가 포함되어 있을 경우, 추가적인 내부 시스템 접근으로 이어질 가능성이 있습니다.
  • 비즈니스 영향:
    • 기밀성 상실: 내부 코드 플랫폼의 특성상 기업의 비즈니스 로직이나 인프라 설정 정보가 유출될 위험이 큽니다.
    • 컴플라이언스 위반: 민감 데이터 노출로 인한 개인정보 보호법 및 산업별 보안 규정 준수 실패 리스크가 발생합니다.

🔗 관련 취약점·체이닝

  • 체이닝 패턴: Path Traversal (CWE-22) $\rightarrow$ Information Disclosure $\rightarrow$ Privilege Escalation / RCE
  • 추정: 본 취약점을 통해 획득한 시스템 설정 파일 내의 Secret Key나 관리자 토큰을 이용하여 인증을 우회하거나, 서버 내부의 다른 API를 호출함으로써 권한 상승 및 원격 코드 실행(RCE)으로 이어지는 체인이 형성될 수 있습니다.

🔎 탐지

  • 로그 지표: HTTP Access Log의 Request URI 필드에서 ../ 또는 /etc/, /var/log/ 등 시스템 경로 패턴 확인.
  • 탐지 규칙 예시:
    • Rule 1 (Path Traversal): URI contains "/api/w/*/jobs_u/get_log_file/" AND URI matches ".*(\.\./|\.\.\\).*"
    • Rule 2 (Sensitive File Access): URI matches ".*/get_log_file/.*(/etc/passwd|/etc/shadow|/proc/self/environ).*"
  • 오탐 시나리오 및 튜닝:
    • 정당한 로그 파일 이름에 점(.)이 포함된 경우 오탐 가능성이 있습니다. 단순히 .을 탐지하기보다 ../와 같은 상위 디렉토리 이동 패턴과 시스템 절대 경로 진입 패턴을 결합하여 탐지 정확도를 높여야 합니다.

🛡️ 완화 방안

  • 즉시 (긴급 차단):
    • WAF(Web Application Firewall)에서 /api/w/*/jobs_u/get_log_file/ 경로로 들어오는 요청 중 .. 시퀀스가 포함된 페이로드를 차단하는 Rule 적용. (난이도: 저 / 영향: 낮음 / 검증: 공격 구문 전송 시 403 Forbidden 확인)
  • 단기 (완화):
    • 네트워크 ACL을 통해 신뢰할 수 있는 IP 대역에서만 해당 API 엔드포인트에 접근하도록 제한. (난이도: 중 / 영향: 중간(정상 사용자 접근 제약 가능) / 검증: 비인가 IP 접근 차단 확인)
  • 근본 (해결):
    • Windmill 버전을 1.603.3 이상으로 업데이트. 본 취약점은 다중 소스에서 일관성이 확인되었으며, EPSS(0.02608) 및 CVSS(7.5) 기반의 규칙에 따라 이번 주 내(scheduled) 조치가 권고됩니다. (난이도: 중 / 영향: 낮음-재시작 필요 / 검증: version 확인 및 PoC 패턴 요청 시 400/403 응답 확인)

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=7.5 · non-KEV · EPSS=0.02608 · exploit=moderate · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

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

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

로그인하기

불러오는 중…