🇰🇷 한글 설명
go-git 라이브러리의 경로 검증 결함으로 인해 악의적인 레포지토리 데이터가 의도한 체크아웃 대상 외부의 파일을 수정할 수 있습니다. 특히 저장소의 .git 디렉토리까지 영향받을 수 있어 저장소 무결성이 손상될 위험이 있습니다.
💡 쉬운 설명
go-git 라이브러리를 사용할 때 악의적으로 조작된 Git 저장소를 받으면 예상치 못한 위치의 파일들이 변경될 수 있습니다. 이는 저장소의 중요한 설정 파일까지 손상시킬 수 있는 문제입니다.
🇺🇸 원문 (English)
go-git is an extensible git implementation library written in pure Go. Prior to 5.19.1 and 6.0.0-alpha.4, a path validation issue in go-git could allow crafted repository data to affect files outside the intended checkout target, including the repository's .git directory. These validations were introduced in upstream Git years ago, so the vulnerability arose from go-git drifting from those checks. This vulnerability is fixed in 5.19.1 and 6.0.0-alpha.4.
📍 영향받는 시스템
go-git 5.19.1 미만, 6.0.0-alpha.3 이하 버전
⚔️ 공격 벡터
악의적으로 조작된 Git 저장소에서 제약 없는 경로 탐색(path traversal)을 통해 저장소 외부 파일 접근
🛡️ 대응 방법
go-git을 5.19.1 이상 또는 6.0.0-alpha.4 이상으로 업그레이드
🔧 검증 코드
go.mod에서 go-git 버전 확인. v5.19.1 이상 또는 v6.0.0-alpha.4 이상이면 패치 완료
grep 'go-git' go.mod | head -1