CVE-2026-45022
WysokieCVSS 7.5Streszczenie
Biblioteka go-git, będąca rozszerzalną implementacją Gita napisaną w czystym Go, przed wersjami 5.19.0 i 6.0.0-alpha.3 mogła analizować źle sformatowane obiekty Git w sposób różniący się od oryginalnego Gita. W przypadku obiektów commit lub tag zawierających niejednoznaczne lub źle sformatowane nagłówki, go-git może przedstawiać wartości inaczej niż Git.
Ocena ryzyka
Może to prowadzić do sytuacji, w której podpisywanie lub weryfikacja commitów odbywa się na podstawie danych, które nie są identyczne z oryginalnymi bajtami obiektu w repozytorium. W rezultacie podpis może wydawać się ważny dla commita, którego wyświetlane lub efektywne metadane różnią się od obiektu, który miał być podpisany.
Rekomendacja
Zaleca się aktualizację do wersji 5.19.0 lub 6.0.0-alpha.3, aby usunąć tę podatność i zapewnić prawidłowe działanie podpisywania oraz weryfikacji commitów.
Oryginalny opis (angielski, źródło NVD)
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.

