Git’te kritik açıklar kapatıldı: kod çalıştırma riski

Anasayfa » Git’te kritik açıklar kapatıldı: kod çalıştırma riski
Git’te kritik açıklar kapatıldı: kod çalıştırma riski

Git projesi, zararlı bir depoyu yinelemeli olarak klonlayan işlemlerde kod çalıştırmaya kadar uzanabilen bir güvenlik açığını kapatan yeni sürümler yayımladı. CVE-2026-111760 olarak izlenen hata, Git’in indeks işleme mekanizmasındaki bir tamsayı kırpılmasına dayanıyor ve özellikle alt modüller üzerinden istismar edilebiliyor.

Yama, 10 Kasım 2026’da duyurulan Git güvenlik güncellemesinin parçası. Güncelleme yalnızca tek bir açığı değil, toplam altı güvenlik sorununu gideriyor. Git’in 2.56.1 sürümü ile birlikte 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 ve 2.50.2 bakım serilerine geri taşıma yamaları da yayımlandı.

Açığın çalıştığı senaryoda saldırgan, aşırı uzun bir yol adı hazırlıyor. Git bu yolu güvenlik kontrolünden geçiriyor, ancak ardından yolu daha kısa bir ad altında diske yazıyor. Saldırgan bu kısa adı .git olarak ayarlayabiliyor. Böylece bir alt modülün .git dosyası, kötü amaçlı yapılandırma ya da kanca içeren bir dizine işaret eden sembolik bağlaçla değiştirilebiliyor. Git’in belirli noktalarda çalıştırdığı hooks mekanizması devreye girdiğinde, saldırganın kontrol ettiği kod da çalışabiliyor.

Bu teknik ayrıntı alt modüller açısından kritik, çünkü Git bir .git klasörünü sembolik bağlaçla değiştirmeyi reddediyor. Yeni klonlanmış bir alt modülde ise .git bir klasör değil, dosya olarak bulunuyor. Araştırmaya göre bu fark, saldırganın koruma mekanizmasını aşmasına alan açıyor. Düzeltilen sürümler, uzunluğu sonradan kırpılabilecek kadar aşırı olan yolları daha en başta reddediyor.

GitHub ve dağıtımlar için güncelleme uyarısı

GitHub, Git’i kendi araçlarına gömdüğü için, yayımladığı teknik notta kullanıcıların işletim sistemi ya da Git dağıtıcısı üzerinden düzeltilmiş sürümü kurmasını ve Git’i kendi kopyasıyla birlikte sunan uygulamaları da güncellemesini istedi. Şirket, yamaları github.com ve GitHub Enterprise Cloud üzerinde zaten uyguladığını açıkladı. GitHub Enterprise Server tarafında düzeltmeler 3.19.15, 3.20.11, 3.21.9 ve 3.22.4 sürümlerine eklendi.

GitHub Desktop ile GitHub Copilot uygulamasının yamalı sürümleri de hazırlanıyor. GitHub Codespaces ve GitHub Actions hizmetleri de düzeltilmiş Git sürümünü alacak. Buna karşılık Git for Windows tarafında, 2.56.1 tabanlı bir sürümün Tuesday 19:09 UTC itibarıyla yayımlanmadığı belirtildi.

Düzeltme kurulana kadar GitHub’ın önerdiği geçici önlemler arasında yalnızca güvenilen sunuculardan klonlama yapmak, güvenilmeyen depoları recursive clone ile indirmemek, güvenilmeyen içerik ya da etiketleri birleştirmemek ve güvenilmeyen kaynaklardan binary patch ya da fast-import akışlarını işlememek yer alıyor. Ancak şirket bu adımların yamaların yerini tutmadığını vurguluyor.

Git sürümleri ayrıca beş ayrı açığı daha kapattı. CVE-2026-113408, Git protocol v2 ile boş bir depo klonlanırken sunucunun path traversal içeren bir branch adı gönderebilmesine dayanıyor. files reference backend kullanıldığında, daha sonraki bir güncelleme bu dalın dosyalarını Git’in reference klasörü dışına yazabiliyor. Git artık protokol üzerinden gelen hedefleri ve diğer symbolic-reference isimlerini doğruluyor.

CVE-2026-114467, iki GPG imzasından fazlasını taşıyan bir etiketi birleştirirken stack belleğinin bozulmasına yol açabiliyor. Bu durum hizmet reddi sonucunu doğurabiliyor. Git barındırma hizmetleri, kullanıcı adına bu tür bir merge işlemi çalıştırıyorsa aynı riskten etkilenebiliyor.

CVE-2026-114469 ise çok büyük bir binary patch’in Git’in yaklaşık 1 GiB’lik sınırını aşarak dış sınır dışı okuma hatasıyla çökmesine neden olabiliyor. CVE-2026-105437’de ise çok sayıda çakışma içeren büyük bir merge işlemi, conflict-marker-size özniteliği yüksek olduğunda, küçük tutulan bir tamponun ötesine yazarak heap belleğini bozabiliyor. CVE-2026-114466 için de rewrite-submodules-from, rewrite-submodules-to ve export-pack-edges fast-import özellikleri, artık –allow-unsafe-features verilmedikçe giriş akışında reddediliyor; çünkü bu özellikler keyfi dosya okuma ya da dosya oluşturma için kullanılabiliyor.

GitLab, CVE-2026-105437 numarasını atayan taraf olarak, kod barındırma sunucularının en çok git merge-tree komutu üzerinden hedef alınmasının beklendiğini belirtti. Bu komut, bir pull ya da merge isteğinin birleşebilir olup olmadığını kontrol etmek için sunucuda çalıştırılabiliyor. Şirketin açıklamasına göre conflict-marker-size özniteliği bir .gitattributes dosyasına eklenebiliyor. Sunucu, öznitelikleri depodan okuyorsa, dal gönderebilen ve pull ya da merge isteği açabilen herhangi bir kullanıcı bu hatayı tetikleyebiliyor. Yama bekleyemeyen sistemlerde geçici çözüm olarak her depo için info/attributes dosyasına conflict-marker-size=7 eklenmesi ya da güvenilmeyen depolar için bu tür merge kontrollerinin kapatılması öneriliyor.

CVE kayıtları için NVD bağlantıları: https://nvd.nist.gov/vuln/detail/CVE-2026-111760, https://nvd.nist.gov/vuln/detail/CVE-2026-113408, https://nvd.nist.gov/vuln/detail/CVE-2026-114467, https://nvd.nist.gov/vuln/detail/CVE-2026-114469, https://nvd.nist.gov/vuln/detail/CVE-2026-105437, https://nvd.nist.gov/vuln/detail/CVE-2026-114466

Kaynaklar