🇰🇷 한글 설명
GitPython 3.2.0 미만 버전의 Head.checkout() 함수에서 인자 주입 취약점이 발견되었습니다. 공격자가 특정 옵션이 포함된 브랜치 이름을 가진 저장소를 호스팅하면, 이를 클론하는 애플리케이션이 임의의 파일을 읽을 수 있습니다.
💡 쉬운 설명
나쁜 의도를 가진 저장소를 내려받을 때, 저장소 이름에 숨겨진 명령어가 실행되어 컴퓨터 안의 중요한 파일을 몰래 읽어갈 수 있는 문제입니다. 브랜치 이름을 이용해 명령어를 조작하는 방식입니다.
🇺🇸 원문 (English)
GitPython before 3.2.0 contains an argument injection vulnerability in Head.checkout() that allows remote attackers to read arbitrary files by supplying a branch name parsed as a git option. Attackers can host a repository whose default branch is named --pathspec-from-file=<path>, causing cloning applications that check out the active branch to leak file contents through GitCommandError messages.
📍 영향받는 시스템
GitPython version < 3.2.0
⚔️ 공격 벡터
악의적으로 조작된 브랜치 이름을 가진 Git 저장소를 클론하여 인자 주입(Argument Injection) 유도
🛡️ 대응 방법
GitPython을 3.2.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 3.2.0 미만이면 취약한 상태입니다.
pip show GitPython | grep Version