Zafiyet.live Keşfet. Değerlendir. Düzelt. Doğrula.
  • Yama var
  • Son 7 gün
  • CWE-696

CVE-2026-114145

GitPython'da alt modül .git yolunun klonlamadan sonra doğrulanması nedeniyle uzaktan kod çalıştırma riski

gitpython-developers GitPython

Yüksek 7,5 CVSS 3.1
Yayımlandı
Güncellendi
23 Eki 2026
Açık yaşı
6 gün
Kaydı açan
GitHub_M

ÖzetTürkçe

GitPython, Git depolarıyla etkileşim kurmak için kullanılan bir Python kütüphanesidir. 3.2.1 sürümünden önce, git/objects/submodule/base.py içindeki create_submodule fonksiyonu, .git/hooks gibi saldırgan etkisindeki bir alt modül yolunu kabul etmekte ve hedefi güvenli biçimde reddetmeden önce _clone_repo fonksiyonunu çağırmaktadır. 3.1.x sürümlerinde _validate_repo_path fonksiyonu mevcut değildir ve çağrı sessizce başarılı olmaktadır; 3.2.0 ve sonraki etkilenen sürümlerde ise git/index/base.py içindeki denetim, klonlama diske yazdıktan sonra ValueError hatası vermekte ve yerleştirilen dosyayı kaldırmamaktadır. Bu nedenle saldırgan kontrolündeki bir alt modül, daha sonra yapılan bir Git işlemiyle çalıştırılan çalıştırılabilir bir checkout sonrası kancası (post-checkout hook) yerleştirebilir. Sömürülmesi için bir uygulamanın güvenilmeyen bir alt modül yolunu kabul etmesi ve Git'in içine klonlayabilecek kadar boş olan .git/hooks gibi bir hedef dizin kullanması gerekmektedir; bu da genellikle varsayılan örnek kancaların bulunmadığı anlamına gelir. Bu sorun 3.2.1 sürümünde giderilmiştir.

Kaynaktaki açıklama (İngilizce)

GitPython is a python library used to interact with Git repositories. Prior to 3.2.1, create_submodule() in git/objects/submodule/base.py accepts an attacker-influenced submodule path such as .git/hooks and invokes _clone_repo() before safely rejecting the destination. In 3.1.x, _validate_repo_path() does not exist and the call succeeds silently, while in 3.2.0 and later affected revisions the check in git/index/base.py raises ValueError only after the clone has written to disk and does not remove the planted file. An attacker-controlled submodule can therefore place an executable post-checkout hook that a later Git operation executes. Exploitation requires an application to accept an untrusted submodule path and a clone destination such as .git/hooks that is empty enough for Git to clone into it, which commonly means that default sample hooks are absent. This issue is fixed in version 3.2.1.

Bu açığın açıklamasını Türkçeye çevirdik. Adım adım çözüm önerilerini kritik ve yeni açıklar için hazırlıyoruz; düzeltilmiş sürüm aşağıdaki tabloda, ayrıntılar üreticinin duyurusunda.

Etkilenen sürümler1 yazılım

YazılımEtkilenenDüzeltildiği sürüm
gitpython-developers GitPython < 3.2.1 3.2.1

Kaynaklar6 kaynak

Kayıt geçmişi

  1. Yayımlandı

İlgili açıklar

Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.