🇰🇷 한글 설명
Gitsign이 온라인 검증 중 여러 Rekor 항목이 반환될 때 잘못된 항목을 선택할 수 있는 취약점입니다. Rekor 검색 API가 두 조건 모두가 아닌 하나 또는 다른 조건을 만족하는 항목을 반환하며, gitsign이 추가 검증 없이 인증서만 확인하기 때문입니다. 악용하려면 인증서 유효성 기간(10분) 동안 키 보유자가 공격해야 하므로 영향은 미미합니다.
💡 쉬운 설명
Gitsign이 Git 커밋 서명을 검증할 때 잘못된 기록을 사용할 수 있는 버그입니다. 공격자가 짧은 시간 창(10분) 내에 자신의 키를 사용해서만 이를 악용할 수 있어 위험도가 매우 낮습니다.
🇺🇸 원문 (English)
Gitsign is a keyless Sigstore to signing tool for Git commits with your a GitHub / OIDC identity. gitsign may select the wrong Rekor entry to use during online verification when multiple entries are returned by the log. gitsign uses Rekor's search API to fetch entries that apply to a signature being verified. The parameters used for the search are the public key and the payload. The search API returns entries that match either condition rather than both. When gitsign's credential cache is used, there can be multiple entries that use the same ephemeral keypair / signing certificate. As gitsign assumes both conditions are matched by Rekor, there is no additional validation that the entry's hash matches the payload being verified, meaning that the wrong entry can be used to successfully pass verification. Impact is minimal as while gitsign does not match the payload against the entry, it does ensure that the certificate matches. This would need to be exploited during the certificate validity window (10 minutes) by the key holder.
📍 영향받는 시스템
Gitsign (특정 패치 버전 이하)
⚔️ 공격 벡터
인증서 유효성 기간(10분) 내 키 보유자가 같은 임시 키를 가진 다른 페이로드의 Rekor 항목으로 서명 검증 우회
🛡️ 대응 방법
Gitsign을 취약점이 패치된 최신 버전으로 업데이트
🔧 검증 코드
설치된 버전 정보가 나오면 Gitsign이 설치된 상태이며, 공식 릴리스 노트에서 CVE-2024-51746 패치 버전 이상으로 업데이트되었는지 확인
gitsign --version 2>/dev/null || echo 'Not installed'