GitLab CE/EE 미인증 임의 파일 읽기 취약점 보안 권고 (CVE-2026-85706)
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTGitLab CE/EE 18.7 버전부터 19.3.1 버전 사이의 특정 릴리즈 사용자
인증되지 않은 원격 공격자가 서버 내의 민감한 시스템 파일(/etc/passwd, gitlab.rb 등)을 탈취하여 관리자 권한 획득 가능
사용 중인 GitLab 버전에 따른 최신 보안 패치(18.11.12, 19.0.9, 19.1.8, 19.2.6, 19.3.2 이상) 즉시 적용
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
PATCH & WORKAROUND최선의 조치는 공식 보안 패치가 포함된 버전으로 업그레이드하는 것입니다.
1. 패키지 업데이트 (Linux)
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install gitlab-ee=19.3.2-ee.0
# RHEL/CentOS
sudo yum install gitlab-ee-19.3.2-ee.02. 임시 완화 조치 (WAF 설정)
패치 적용 전까지 WAF(Web Application Firewall)에서 다음과 같은 경로 패턴을 포함한 요청을 차단하십시오.
- 패턴:
..%2f,..%5c,/api/v4/projects/.*/repository/commits/경로 내의 상위 디렉토리 참조 시도
3. 침해 지표(IoC) 확인
GitLab 로그(production_json.log)에서 인증되지 않은 사용자의 API 호출 및 경로 탐색 시도를 모니터링하십시오.
grep "/api/v4/projects/" /var/log/gitlab/gitlab-rails/production_json.log | grep "..%2f"내 GitHub/GitLab 레포지토리에 이 취약한 패키지가 숨어 있는지 30초 만에 스캔하세요
간접 의존성(Transitive Dependency)에 포함된 취약점은 수동 확인이 불가능합니다. Git 연동 한 번으로 취약 버전 탐지부터 호환성을 유지하는 최소 버전 업그레이드 PR까지 자동 생성하세요.
취약점 발생 원리 및 공격 메커니즘
본 취약점(CVE-2026-85706)은 GitLab의 Repository Commits API에서 발생하는 경로 탐색(Path Traversal, CWE-22) 및 인증 누락 취약점입니다. 공격자는 특수하게 조작된 API 요청을 통해 저장소 경로를 벗어나 서버 파일 시스템의 임의 파일에 접근할 수 있습니다. 특히 인증이 강제되지 않는 설계 결함으로 인해 로그인하지 않은 외부 공격자도 익스플로잇이 가능하며, CVSS 10.0의 최고 위험도를 기록하고 있습니다. CISA KEV에 등재된 만큼 실제 공격 시도가 활발하므로 즉각적인 대응이 필요합니다.
공식 보안 권고문 및 참조 링크
GitLab has remediated an issue in GitLab CE/EE affecting all versions from 18.7 before 18.11.12, 19.0 before 19.0.9, 19.1 before 19.1.8, 19.2 before 19.2.6, and 19.3 before 19.3.2 that, under certain conditions, an unauthenticated user could have read arbitrary files from the GitLab server due to improper path confinement and missing authentication enforcement in the repository commits API.
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.