W bibliotece go-git w wersjach wcześniejszych niż v5.13 odkryto podatność typu argument injection (CWE-88), umożliwiającą atakującemu wstrzyknięcie dowolnych flag do polecenia git-upload-pack. Podatność jest szczególnie groźna, ponieważ nie wymaga uwierzytelnienia ani interakcji użytkownika, a jej wynik to pełna kompromitacja poufności, integralności i dostępności zasobu.
▸ Pokaż oryginał (EN)
go-git is a highly extensible git implementation library written in pure Go. An argument injection vulnerability was discovered in go-git versions prior to v5.13. Successful exploitation of this vulnerability could allow an attacker to set arbitrary values to git-upload-pack flags. This only happens when the file transport protocol is being used, as that is the only protocol that shells out to git binaries. This vulnerability is fixed in 5.13.0.
Podatność ujawnia się wyłącznie podczas korzystania z protokołu transportu plikowego (file transport protocol), który jako jedyny wywołuje zewnętrzne binaria git w formie podprocesów (shell out). Atakujący może spreparować wejście w taki sposób, aby przekazać do wywołania git-upload-pack arbitralne argumenty lub flagi, które nie są oczekiwane przez bibliotekę. Brak odpowiedniej sanityzacji argumentów przed przekazaniem ich do procesu zewnętrznego prowadzi do skutecznej eksploatacji.
Skuteczne wykorzystanie podatności pozwala atakującemu na ustawienie dowolnych flag polecenia git-upload-pack, co może prowadzić do nieautoryzowanego odczytu, modyfikacji lub naruszenia dostępności danych obsługiwanych przez bibliotekę.
Należy zaktualizować bibliotekę go-git do wersji 5.13.0 lub nowszej, w której podatność została naprawiona. Jeśli natychmiastowa aktualizacja nie jest możliwa, należy unikać korzystania z protokołu transportu plikowego (file transport protocol) w środowiskach narażonych na niezaufane dane wejściowe.
Biblioteka go-git (projekt Go-Git) we wszystkich wersjach wcześniejszych niż v5.13.0, przy użyciu protokołu transportu plikowego (file transport protocol).
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:ClearGo Git Project Go Git
APPGo-Git Project< 5.13.0
Powiązane podatności
Path Traversal w go-git umożliwiający RCE (CVE-2023-49569)
go-git is an extensible git implementation library written in pure Go. Prior to 5.19.0 and 6.0.0-alpha.3, go-g...
go-git is a highly extensible git implementation library written in pure Go. A denial of service (DoS) vulnera...
A denial of service (DoS) vulnerability was discovered in go-git versions prior to v5.11. This vulnerability a...
go-git is an extensible git implementation library written in pure Go. Prior to 5.19.1 and 6.0.0-alpha.4, a pa...