🇰🇷 한글 설명
GitPython 3.1.59 미만 버전에서 .gitmodules 파일을 파싱할 때 merge_includes 설정을 비활성화하지 못하는 취약점이 존재합니다. 공격자가 [include] 지시문을 사용하여 임의의 파일 경로를 포함시키면, repo.submodules 접근 시 발생하는 예외 메시지에 해당 파일의 첫 줄 내용이 포함되어 로컬 파일 내용이 유출될 수 있습니다.
💡 쉬운 설명
악성 설정 파일이 포함된 저장소를 열면, 컴퓨터 내부의 중요한 파일 내용이 에러 메시지를 통해 공격자에게 노출될 수 있는 보안 결함입니다. 공격자는 이 방법을 통해 비밀번호나 설정 파일 같은 민감한 정보를 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
GitPython before 3.1.59 fails to disable merge_includes when parsing .gitmodules, allowing attackers to disclose local file content by including arbitrary file paths via [include] directives. Attackers can craft a malicious .gitmodules file with include directives pointing to sensitive files; when repo.submodules is accessed, GitConfigParser raises MissingSectionHeaderError embedding the target file's first line verbatim in the exception message.
📍 영향받는 시스템
GitPython 3.1.59 미만 모든 버전
⚔️ 공격 벡터
조작된 .gitmodules 파일을 통해 임의의 로컬 파일 경로를 include 지시문으로 포함시켜 예외 메시지로 유출
🛡️ 대응 방법
GitPython을 3.1.59 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 3.1.59보다 낮으면 취약한 상태이며, 3.1.59 이상이면 안전합니다.
pip show gitpython | grep Version