🔍 CVE-2026-44309

5.3
CVSS Score
MEDIUM
2026-05-15
2026-10-26 14:10
✅ 완료

🇰🇷 한글 설명

Gitsign 0.16.0 이전 버전에서 go-git 라이브러리가 raw 바이트 대신 재인코딩된 커밋 객체로 서명을 검증하는 문제입니다. 중복된 트리 헤더를 가진 악의적 커밋이 검증을 우회할 수 있으며, 검증된 서명과 git-core가 해석하는 실제 커밋 내용이 불일치하게 됩니다.

💡 쉬운 설명

Gitsign이 코드 커밋의 서명을 잘못 검증하여 위조된 커밋을 정상으로 판단할 수 있는 문제입니다. 공격자가 가짜 커밋을 유효한 것처럼 속일 수 있습니다.

🇺🇸 원문 (English)

Gitsign is a keyless Sigstore to signing tool for Git commits with your a GitHub / OIDC identity. Prior to 0.16.0, gitsign verify and gitsign verify-tag re-encode commit/tag objects through go-git's EncodeWithoutSignature before checking the signature, instead of verifying against the raw git object bytes. For malformed objects with duplicate tree headers, git-core and go-git parse different trees: git-core uses the first, go-git uses the second. A signature crafted over the go-git-normalized form (second tree) passes gitsign verify while git-core resolves the commit to a completely different tree. This breaks the invariant that a verified signature, the commit semantics git-core presents to users, and the object hash logged in Rekor all refer to the same content. This vulnerability is fixed in 0.16.0.

📍 영향받는 시스템

Gitsign < 0.16.0

⚔️ 공격 벡터

중복된 트리 헤더를 포함한 악의적 Git 커밋 객체를 생성하여 gitsign verify 및 verify-tag 검증을 우회

🛡️ 대응 방법

Gitsign을 0.16.0 이상으로 업그레이드

🔧 검증 코드

0.16.0 이상 버전이 출력되면 안전하고, 그 이하면 즉시 업그레이드 필요

Shell / Script
gitsign --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N

💻 영향받는 소프트웨어

Git