🇰🇷 한글 설명
Git의 특정 버전에서 비로컬 전송을 사용할 때도 로컬 클론 최적화 기능이 잘못 작동하는 취약점이 발견되었습니다. 공격자가 특수하게 제작된 저장소를 통해 피해자의 파일 시스템에 있는 임의의 파일을 탈취할 수 있습니다.
💡 쉬운 설명
나쁜 의도를 가진 저장소를 내려받을 때, 컴퓨터 안에 있는 중요한 개인 파일을 몰래 빼갈 수 있는 보안 약점입니다. Git 프로그램이 저장소를 복사하는 과정에서 발생하는 허점을 이용합니다.
🇺🇸 원문 (English)
Git is a revision control system. Using a specially-crafted repository, Git prior to versions 2.39.2, 2.38.4, 2.37.6, 2.36.5, 2.35.7, 2.34.7, 2.33.7, 2.32.6, 2.31.7, and 2.30.8 can be tricked into using its local clone optimization even when using a non-local transport. Though Git will abort local clones whose source `$GIT_DIR/objects` directory contains symbolic links, the `objects` directory itself may still be a symbolic link. These two may be combined to include arbitrary files based on known paths on the victim's filesystem within the malicious repository's working copy, allowing for data exfiltration in a similar manner as CVE-2022-39253.
A fix has been prepared and will appear in v2.39.2 v2.38.4 v2.37.6 v2.36.5 v2.35.7 v2.34.7 v2.33.7 v2.32.6, v2.31.7 and v2.30.8. If upgrading is impractical, two short-term workarounds are available. Avoid cloning repositories from untrusted sources with `--recurse-submodules`. Instead, consider cloning repositories without recursively cloning their submodules, and instead run `git submodule update` at each layer. Before doing so, inspect each new `.gitmodules` file to ensure that it does not contain suspicious module URLs.
📍 영향받는 시스템
Git 2.39.2, 2.38.4, 2.37.6, 2.36.5, 2.35.7, 2.34.7, 2.33.7, 2.32.6, 2.31.7, 2.30.8 미만 버전
⚔️ 공격 벡터
악의적으로 조작된 Git 저장소를 클론(clone)하여 피해자의 로컬 파일 경로를 참조하도록 유도
🛡️ 대응 방법
Git을 최신 보안 패치가 적용된 버전(2.39.2, 2.38.4 등)으로 업데이트하거나, 신뢰할 수 없는 저장소 클론 시 --recurse-submodules 옵션 사용을 지양함
🔧 검증 코드
출력된 Git 버전이 취약점이 해결된 버전(예: 2.39.2 이상)인지 확인