🇰🇷 한글 설명
gitoxide는 Rust로 구현된 Git 도구로, 0.42.0 이전 버전에서 SHA-1 해시 충돌 감지 메커니즘이 없어 서로 다른 두 Git 객체가 동일한 해시값을 가질 수 있습니다. 공격자가 충돌하는 해시를 이용해 위조된 객체를 주입하면 Git 객체 모델과 무결성 검사가 파괴될 수 있습니다.
💡 쉬운 설명
gitoxide가 파일 검증에 사용하는 SHA-1 해시 알고리즘이 약해서, 다른 파일도 같은 해시값을 가지도록 조작할 수 있습니다. 이러면 Git 저장소의 안전성이 깨집니다.
🇺🇸 원문 (English)
gitoxide is an implementation of git written in Rust. Before 0.42.0, gitoxide uses SHA-1 hash implementations without any collision detection, leaving it vulnerable to hash collision attacks. gitoxide uses the sha1_smol or sha1 crate, both of which implement standard SHA-1 without any mitigations for collision attacks. This means that two distinct Git objects with colliding SHA-1 hashes would break the Git object model and integrity checks when used with gitoxide. This vulnerability is fixed in 0.42.0.
📍 영향받는 시스템
gitoxide < 0.42.0
⚔️ 공격 벡터
SHA-1 해시 충돌을 이용해 위조된 Git 객체를 저장소에 주입하여 무결성 검사 우회
🛡️ 대응 방법
gitoxide를 0.42.0 이상으로 업그레이드
🔧 검증 코드
gitoxide가 프로젝트 의존성으로 설치되어 있다면 버전이 표시되고, 버전이 0.42.0 이상인지 확인 후 필요시 Cargo.toml에서 버전을 업그레이드하세요.
cargo tree 2>/dev/null | grep gitoxide | head -1