🇰🇷 한글 설명
GitPython 3.1.58 미만 버전의 IndexFile.remove() 및 Head.checkout() 함수에서 git rm 및 git checkout 명령에 전달되는 옵션을 검증하지 않는 취약점이 존재합니다. 공격자는 --pathspec-from-file 또는 --pathspec-file-nul 매개변수를 사용하여 프로세스가 접근 가능한 임의의 파일을 읽을 수 있으며, 파일의 전체 내용이 GitCommandError.stderr를 통해 노출될 수 있습니다.
💡 쉬운 설명
GitPython 라이브러리를 사용할 때 잘못된 명령 옵션을 입력하면 시스템 내부의 중요한 파일을 몰래 읽어갈 수 있는 보안 약점이 있습니다. 공격자가 특수한 명령어를 통해 서버에 저장된 파일을 가로챌 위험이 있습니다.
🇺🇸 원문 (English)
GitPython versions before 3.1.58 fail to validate options passed to git rm and git checkout commands in IndexFile.remove() and Head.checkout(). Attackers can supply --pathspec-from-file and --pathspec-file-nul parameters to read arbitrary files accessible to the process, with full file contents returned in GitCommandError.stderr.
📍 영향받는 시스템
GitPython versions before 3.1.58
⚔️ 공격 벡터
악의적으로 조작된 옵션(--pathspec-from-file 등)을 GitPython 명령에 주입하여 임의의 파일 읽기
🛡️ 대응 방법
GitPython 라이브러리를 3.1.58 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 Version 값이 3.1.58보다 낮으면 취약한 상태입니다.
pip show gitpython | grep Version