Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/s41r4j/cve-2025-48384
Vulnerability AnalysisExploitationSupply Chain SecurityPapers & ResearchLearning & EducationLabs & Practice
GitHubs41r4j/cve-2025-48384

CVE-2025-48384

GIT 취약점 | 클로닝 시 캐리지 리턴 및 RCE

저장소 보기
10개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

CVE-2025-48384 개요

CVE-2025-48384는 널리 사용되는 분산 버전 관리 시스템인 Git에서 발견된 치명적인 취약점입니다. 이 취약점은 구성 값에서 캐리지 리턴(CR) 문자를 부적절하게 처리하여 서브모듈 체크아웃 중 경로 탐색 문제를 일으킬 수 있습니다. 이 결함으로 인해 특정 조건에서 임의 코드 실행이 가능할 수 있습니다. 이 취약점은 2025년 7월 8일에 공개적으로 공표되었으며, 2025년 8월 26일에 마지막으로 수정되었습니다. 또한 2025년 8월 25일 미국 사이버보안 및 인프라 보안국(CISA)의 알려진 악용 취약점(KEV) 목록에 추가되어 실제 환경에서 활발히 악용되고 있음을 나타내며, 시정 기한은 2025년 9월 15일입니다.

취약점 설명

이 문제는 Git이 구성 값을 처리하는 방식에서 비롯됩니다.

  • 구성 값을 읽을 때 Git은 후행 캐리지 리턴 및 라인 피드(CRLF) 문자를 제거합니다.
  • 그러나 구성 항목을 쓸 때 후행 CR이 포함된 값은 제대로 인용 처리되지 않아 이후 읽기 과정에서 CR이 손실됩니다.

이러한 불일치로 인해 서브모듈 경로에 후행 CR이 포함된 경우 서브모듈이 잘못된 위치에 체크아웃될 수 있습니다. 공격자가 이 변경된 경로를 서브모듈의 hooks 디렉터리를 가리키는 심볼릭 링크로 설정하고, 해당 서브모듈에 실행 가능한 post-checkout 훅이 포함되어 있다면, 체크아웃 후 훅 스크립트가 의도치 않게 실행되어 임의 코드 실행으로 이어질 수 있습니다.

기술적 세부 사항

이 취약점은 Git의 구성 파싱에서 발생하는 해석 충돌을 악용합니다.

  • 구성 처리 불일치: 후행 CR은 읽을 때 제거되지만, 인용 처리 없이 쓸 때는 보존되지 않습니다.
  • 서브모듈 체크아웃 경로 변경: "submodule/path"과 같은 서브모듈 경로는 CR이 손실된 후 "submodule/path"로 해석될 수 있습니다.
  • 심볼릭 링크 악용: 공격자는 변경된 경로에서 hooks 디렉터리(예: .git/hooks/post-checkout)로 이어지는 심볼릭 링크를 생성하여, git submodule update 또는 git clone --recurse-submodules 같은 작업 중에 악성 훅이 실행되도록 허용할 수 있습니다.

이 취약점은 다음으로 분류됩니다:

  • CWE-436: 해석 충돌(데이터 처리 방식의 불일치)
  • CWE-59: 파일 접근 전 부적절한 링크 해석('링크 따라가기') — 심볼릭 링크 남용으로 인한 것.

공격 벡터는 네트워크 기반(AV:N)이며, 높은 복잡성(AC:H), 낮은 권한 필요(PR:L), 사용자 상호 작용 필요(UI:R), 범위 변경(S:C) 속성을 가지며 기밀성, 무결성, 가용성에 높은 영향(C:H/I:H/A:H)을 미칩니다.

영향을 받는 버전

이 취약점은 다음 패치 릴리스 이전의 Git 버전에 영향을 미칩니다:

  • v2.43.7 이전의 모든 버전
  • v2.44.0 ~ v2.44.3
  • v2.45.0 ~ v2.45.3
  • v2.46.0 ~ v2.46.3
  • v2.47.0 ~ v2.47.2
  • v2.48.0 ~ v2.48.1
  • v2.49.0
  • v2.50.0

이 취약점은 Linux, macOS, Windows를 포함한 다양한 플랫폼의 Git에 영향을 미치지만, 특히 개발자 환경, CI/CD 파이프라인(예: GitHub Actions, GitLab CI), 그리고 신뢰할 수 없는 저장소에서 Git 서브모듈을 클론하는 모든 환경에서 중요합니다.

영향 및 악용 시나리오

  • 영향: 원격 코드 실행(RCE), 데이터 유출 또는 시스템 손상의 위험이 높습니다. 개발자 워크플로우에서는 악성 저장소를 클론할 경우 공급망 공격으로 이어질 수 있습니다.
  • 악용 요구 사항:
    • 후행 CR이 포함된 특수하게 조작된 서브모듈 경로
    • hooks 디렉터리로 연결되는 심볼릭 링크
    • 서브모듈에 있는 실행 가능한 훅(예: post-checkout)
    • --recurse-submodules 옵션을 사용한 저장소 클론과 같은 사용자 상호 작용
  • 실제 악용 상황: CISA KEV 목록에 포함되어 있으므로 연방 기관과 중요 인프라는 2025년 9월 15일까지 시정해야 합니다. 개발자나 오픈소스 프로젝트를 대상으로 한 표적 공격에서 악용되고 있을 가능성이 높습니다. 권고문에는 공개된 개념 증명(PoC)이 언급되지 않았지만, 높은 복잡성으로 보아 특정한 설정이 필요함을 시사합니다.

CVSS 세부 점수는 아직 NVD에서 완전히 산정되지 않았지만(CVSS 4.0 대기 중), 권고문의 CVSS 3.1 지표에 따르면 치명적 심각도(이전의 광범위한 CVE 목록에서 언급된 대로 추정 CVSS 8.8)에 해당합니다.

완화 및 권장 사항

  • 패치 버전: Git을 다음 버전 중 하나 이상으로 업데이트하세요:
    • v2.43.7
    • v2.44.4
    • v2.45.4
    • v2.46.4
    • v2.47.3
    • v2.48.2
    • v2.49.1
    • v2.50.1
  • 임시 완화 방안:
    • 신뢰할 수 없는 저장소에서 서브모듈을 재귀적으로(--recurse-submodules) 클론하지 마세요.
    • 가능하면 Git 구성에서 심볼릭 링크 사용을 비활성화하거나 제한하세요.
    • 권한이 제한된 환경(예: 컨테이너 환경)에서 Git을 사용하세요.
  • 추가 조언: CISA 지침을 받은 조직은 공급업체의 지침에 따라 패치를 적용하거나, 패치가 불가능한 경우 사용을 중단하세요. 저장소에서 의심스러운 서브모듈을 정기적으로 검사하고 예상치 못한 훅 실행을 모니터링하세요.

크레딧 및 참고 자료

  • 크레딧: 권고문은 보고 및 세부 정보 공개에 대해 ttaylorr에게 크레딧을 부여합니다.
  • 주요 참고 자료:
    • NVD 항목: https://nvd.nist.gov/vuln/detail/CVE-2025-48384
    • GitHub 보안 권고: https://github.com/git/git/security/advisories/GHSA-vwqx-4fm8-6qc9
    • CISA KEV 카탈로그: (NVD 세부 정보에 통합됨)

이 취약점은 특히 서브모듈을 사용하는 버전 관리 시스템에서 안전한 처리의 중요성을 강조합니다. Git을 프로덕션 또는 개발 환경에서 사용하고 있다면, 활발한 악용 상태를 고려하여 즉시 업데이트를 최우선으로 수행하세요.

빠른 PoC

  • 사전 요구 사항: Docker가 설치되어 있고 이 저장소가 로컬에 클론되어 있어야 합니다. PoC 중에는 네트워크가 필요 없습니다.
  • 취약한 Git: Git 2.40.4를 사용합니다(경로 혼동 동작 확인됨).
  • 서브모듈 URL: .gitmodules는 https://github.com/s41r4j/CVE-2025-48384-submodule.git을 가리키지만, PoC는 오프라인 테스트를 위해 이를 로컬 복사본으로 다시 작성합니다.

실행:

bash scripts/poc.sh

동작 방식:

  • Git 2.40.4가 포함된 컨테이너 이미지를 빌드합니다.
  • 컨테이너 내부의 $HOME/flag.txt에 플래그를 생성합니다.
  • malicious-submodule-repo/를 컨테이너의 /tmp로 복사합니다.
  • 해당 로컬 서브모듈 복사본으로 URL을 다시 작성하면서 이 저장소를 재귀적으로 클론합니다.
  • 경로 혼동이 성공하면 post-checkout 훅이 트리거되도록 체크아웃을 강제합니다.
  • 훅이 생성한 /tmp/flag.txt를 출력합니다.

참고:

  • 악성 서브모듈 경로는 gitlink로 저장된 리터럴 sub^M(CR)이며, 정리된 경로 sub는 심볼릭 링크를 통해 .git/hooks로 연결되므로 서브모듈이 추적하는 post-checkout이 실제 훅으로 배치되어 실행됩니다.
  • gitlink를 GitHub에 푸시한 후 원격 서브모듈의 최신 커밋으로 다시 대상화하려면 다음을 실행하세요: bash scripts/update-gitlink.sh.
도구 다운로드