GitPython CVE-2026-114145: 서브모듈 클론 시 RCE 위험이란?

GitPython이 서브모듈의 .git 경로에 클론을 먼저 수행하고 검증은 그다음에 실행하는 설계 결함이 발견됐습니다. 공격자가 원격에서 코드를 실행할 수 있는 길을 열어주는 터라 원격 코드 실행(RCE)로 분류됐습니다.

CVE-2026-114145 취약점 개요 및 RCE 위험성

GitPython 라이브러리로 자동화 파이프라인을 구축한 DevOps 엔지니어와 보안 담당자라면 최근 식별된 CVE-2026-114145 취약점을 주의 깊게 봐야 합니다. 이 취약점은 GitHub 보안 어드바이저리(GHSA-83vg-56qc-22m7)로 공개됐고, 어드바이저리는 이 문제를 원격 코드 실행(RCE)으로 명확히 분류하고 있습니다.

원격 코드 실행(RCE)은 공격자가 대상 시스템에서 임의의 명령어를 실행하는 심각한 보안 결함입니다. GitPython처럼 저장소 클론과 관리를 자동화하는 라이브러리에서 이런 취약점이 터지면, 신뢰할 수 없는 저장소의 서브모듈 설정을 타고 자동화 파이프라인 전체의 제어권이 넘어갈 위험이 있습니다.

기술적 분석:.git 경로 검증 순서 문제

이번 취약점의 핵심은 ‘검증 시점’이 잘못 짜여 있다는 데 있습니다. 정상적인 보안 프로세스라면 외부에서 들어온 경로로 시스템에 변경을 가하기 전에 해당 경로의 안전성부터 검증합니다. 그런데 GitPython의 기존 동작 방식은 다음과 같은 순서를 따랐습니다.

  1. 서브모듈의 .git 경로를 확인하고 그 경로에 클론을 수행함.
  2. 클론 작업이 끝난 뒤에야 해당 경로를 검증함.

이처럼 검증이 돌아가기 전에 이미 클론이라는 쓰기 작업(Mutation)이 일어난다는 점이 치명적입니다. 공격자가 .git 경로를 악의적으로 조작한 서브모듈을 배포하고, GitPython이 이를 클론하는 과정에서 검증 없이 대상 경로에 접근하게 되면 임의의 코드가 실행될 환경이 만들어집니다.

취약점 상세 정보 요약

항목 상세 내용
CVE 식별 번호 CVE-2026-114145
취약점 분류 원격 코드 실행 (RCE)
취약점 원인 서브모듈.git 경로 검증 시점의 오류 (클론 후 검증)
관련 어드바이저리 GHSA-83vg-56qc-22m7

수정 사항 및 대응 방향

GitPython 프로젝트 팀은 검증 프로세스의 순서를 바꾸는 조치로 이 문제를 해결했습니다. 프로젝트 저장소에는 대상 경로를 변경하기 전에 먼저 검증을 수행하도록 하는 ‘validate destinations before mutation’ 커밋(97eadb8)이 반영돼 있습니다.

기존 ‘실행 후 검증’ 방식을 ‘검증 후 실행’ 방식으로 로직을 전환해, 신뢰할 수 없는 경로로의 클론 시도를 시스템에 영향을 주기 전에 차단하려는 목적입니다.

보안 담당자를 위한 체크리스트 및 주의사항

  1. 커밋 반영 확인: GitPython 저장소의 수정 커밋(97eadb8)이 적용된 버전을 쓰고 있는지 확인합니다.
  2. 버전 확인: GitPython 3.2.1 릴리스 페이지가 존재하는 것까지는 확인됐지만, 이 버전이 본 취약점의 공식 수정 버전인지를 연결해주는 명시적 정보가 제공된 문서에는 없습니다. 그래서 사용 중인 버전의 변경 로그에 validate destinations before mutation 내용이 포함됐는지 교차 검증하는 과정이 필요합니다.
  3. 미확인 사항 인지: 현재 공개된 정보만으로는 다음 세부 사항이 확인되지 않은 상태입니다.
    • 영향을 받는 정확한 버전 범위 및 CVSS 점수.
    • 구체적인 공격 벡터 및 PoC(Proof of Concept) 절차.
    • 실제 야생(In-the-wild)에서의 악용 사례 및 CISA KEV 등재 여부.

GitPython으로 자동화 파이프라인을 운영하는 환경이라면 최신 커밋 반영 여부를 점검하고, 특히 외부 저장소의 서브모듈을 자동으로 클론하는 로직이 들어 있는지 면밀히 분석해볼 일입니다.

댓글 남기기