🔍 CVE-2026-45022

7.5
CVSS Score
HIGH
2026-05-27
2026-06-04 17:57
✅ 완료

🇰🇷 한글 설명

go-git 라이브러리가 특정 버전에서 잘못된 형식의 Git 객체를 처리할 때 실제 Git과 다르게 해석하는 취약점이 발견되었습니다. 이로 인해 커밋 서명 및 검증 과정에서 원본 데이터와 다른 데이터가 사용될 수 있어, 실제 내용과 다른 커밋에 유효한 서명이 붙을 수 있습니다.

💡 쉬운 설명

Git 데이터를 읽어오는 방식의 차이로 인해, 실제 내용과 눈에 보이는 내용이 다른 가짜 데이터가 정상적인 것처럼 속일 수 있는 문제입니다. 보안 서명이 실제 데이터가 아닌 변형된 데이터를 기준으로 검증될 수 있어 위험합니다.

🇺🇸 원문 (English)

go-git is an extensible git implementation library written in pure Go. Prior to 5.19.0 and 6.0.0-alpha.3, go-git may parse malformed Git objects in a way that differs from upstream Git. When commit or tag objects contain ambiguous or malformed headers, go-git’s decoded representation may expose values differently from how Git itself would interpret or reject the same object. Additionally, go-git’s commit signing and verification logic operates over commit data reconstructed from go-git’s parsed representation rather than the original raw object bytes. As a result, go-git may sign or verify a commit payload that is not byte-for-byte equivalent to the object stored in the repository. This can cause a signature to appear valid for a commit whose displayed or effective metadata differs from the object that was intended to be signed. This vulnerability is fixed in 5.19.0 and 6.0.0-alpha.3.

📍 영향받는 시스템

go-git versions prior to 5.19.0 and 6.0.0-alpha.3

⚔️ 공격 벡터

악의적으로 조작된 헤더를 가진 Git 커밋 또는 태그 객체를 사용하여 서명 검증 로직을 우회함

🛡️ 대응 방법

go-git 라이브러리를 5.19.0 또는 6.0.0-alpha.3 이상의 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 버전이 5.19.0 미만이거나 6.0.0-alpha.3 미만인 경우 취약한 상태입니다.

Shell / Script
go list -m github.com/go-git/go-git/v5 2>/dev/null

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Git