🇰🇷 한글 설명
GitPython 3.1.59 버전의 high-level diff API에서 --no-index 옵션에 대한 제한이 없어 공격자가 임의의 파일 경로를 읽을 수 있습니다. 공격자는 --no-index와 --ignore-matching-lines 옵션을 조합하여 로컬 파일의 내용을 한 줄씩 알아낼 수 있는 불리언 오라클(Boolean oracle) 공격을 수행할 수 있습니다.
💡 쉬운 설명
GitPython 라이브러리의 허점을 이용해 컴퓨터에 저장된 비밀번호 같은 중요한 파일 내용을 몰래 읽어낼 수 있는 보안 취약점입니다. 공격자는 특정 조건이 맞는지 틀린지를 반복해서 확인하는 방식으로 파일 내용을 한 줄씩 알아낼 수 있습니다.
🇺🇸 원문 (English)
GitPython 3.1.59 fails to restrict the --no-index option in the high-level diff API, allowing attackers to read arbitrary filesystem paths as repository operands. Attackers can combine --no-index with -I/--ignore-matching-lines to create a content-dependent Boolean oracle, repeatedly querying local files to recover single-line secrets through distinguishable success or error responses.
📍 영향받는 시스템
GitPython 3.1.59 이하 버전
⚔️ 공격 벡터
diff API의 --no-index 옵션을 악용하여 로컬 파일 시스템의 임의 경로에 접근 및 데이터 유출
🛡️ 대응 방법
GitPython을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 3.1.59와 같거나 그보다 낮으면 취약한 상태입니다.
pip show gitpython | grep Version