DevOps & Platform Eng

GitHub RCE Açığı: Düzeltmeler ve Çıkarılan Dersler

GitHub'un git push hattındaki kritik uzak kod çalıştırma açığı yaygın bir ihlali tehdit ediyordu. Hatayı ve hızlı, çok yönlü savunmayı teknik detaylarıyla inceleyin.

{# Always render the hero — falls back to the theme OG image when article.image_url is empty (e.g. after the audit's repair_hero_images cleared a blocked Unsplash hot-link). Without this fallback, evergreens with cleared image_url render no hero at all → the JSON-LD ImageObject loses its visual counterpart and LCP attrs go missing. #}
Git push hattını gösteren diyagram, zafiyet noktası vurgulanmış.

Key Takeaways

  • GitHub'un git push hattındaki kritik RCE açığı iki saatten kısa sürede yamarlandı.
  • Sömürü, temizlenmemiş kullanıcı 'git push' seçeneklerini kötü komut enjeksiyonu için kullandı.
  • Adli analiz, GitHub.com'da sömürü olmadığını doğruladı.
  • GitHub, gelecek riskleri azaltmak için gereksiz kod yollarını kaldırarak katmanlı savunma uyguladı.
  • GitHub Enterprise Server kullanıcılarına yamalı sürümlere yükseltme şiddetle tavsiye ediliyor.

4 Mart 2026’da gerçek surata çarptı: Kritik bir uzak kod çalıştırma açığı bildirildi, kod gönderme işlemini sunucu tarafı bir sömürüye dönüştürebilecek kadar tehlikeli.

Bu, marjinal bir köşe vakası falan değildi; github.com’u, GitHub Enterprise Cloud’un çeşitli konfigürasyonlarını ve GitHub Enterprise Server’ı vurdu. İki saatten kısa sürede GitHub güvenlik ekibi açığı doğruladı, canlı servisi yamarladı ve adli incelemeye daldı. Buldukları ve tepkileri, modern güvenlik olay yönetiminde çarpıcı bir vaka çalışması sunuyor.

Sömürünün Yapısı

Temelde, kullanıcı tarafından sağlanan <a href="/tag/git-push/">git push</a> seçeneklerinin işlenme biçiminden kaynaklanıyordu. Git’in meşru bir özelliği olan bu seçenekler, istemcilerin sunucuya özel anahtar-değer dizgilerini iletmesine izin verir. Sorun neydi? GitHub’un servisler arası push bilgisini taşıyan iç metadata protokolü, kullanıcı girdisinde de çıkabilen bir ayraç karakteri kullanıyordu.

Bu, devasa bir gedik açtı. Saldırgan, bir depoya push erişimi olan —hatta yeni oluşturduğu— biri olarak uydurulmuş push seçenekleri enjekte edebilirdi. Bu enjekte alanlar, meşru iç metadata gibi davranarak alt servisleri kandırabilirdi. Şöyle düşünün: Masum görünümlü bir git push --set-upstream origin main --option='key=value' geçidi haline geliyor. Birkaç enjekte değeri zincirleyerek saldırgan yürütme ortamını yeniden yazabilir, kum havuzunu atlar ve —pat— GitHub sunucusunda rastgele komutlar çalıştırabilirdi.

Zafiyet, kullanıcı tarafından sağlanan git push seçeneklerinin bu metadata içinde nasıl işlendiğinden kaynaklanıyor. Push seçenekleri, git’in kasıtlı bir özelliği; push sırasında istemcilerin sunucuya anahtar-değer dizgileri göndermesine olanak tanır. Ancak kullanıcı değerleri, yeterli temizleme yapılmadan iç metadata’ya katılmış.

Bu erişim seviyesi, her platform sağlayıcısı için kabus. Olağan savunma katmanlarını atlıyor, kod değişikliklerinin giriş noktasını doğrudan hedefliyor.

Işık Hızında Tepki

Zafiyet kadar çarpıcı olan bir şey de GitHub’un hızı. 4 Mart’ta gelen hata ödülü raporunu alır almaz, güvenlik ekibi 40 dakikada sorunu içerde yeniden üretti. Saat 17:45 UTC’de kök nedeni buldular. Kullanıcı push seçenekleri için kritik temizleme güncellemesi, saat 19:00 UTC’de github.com’a yayıldı — akıl almaz bir çeviklik.

GitHub Enterprise Server müşterileri için tüm desteklenen sürümlere yamalar hazırlandı ve bir CVE (CVE-2026-3854) yayınlandı. Tavsiye net: Hemen yükseltin.

Hayalet Avı: Sömürü Peşinde

Canlı servisteki anlık tehdit savuşturulunca, asıl kritik soru kaldı: Bulunmadan önce sömürülmüş müydü? GitHub soruşturması, sömürünün benzersiz bir özelliğinden yararlandı.

Sunucuyu GitHub.com’un normal işlemlerinde asla kullanılmayan bir kod yoluna zorluyordu. Bu, sinsi bir hata değildi; enjeksiyon mekanizmasının kaçınılmaz, gürültülü sonucu. Bu anomali yolu kaydedip sorgulayarak GitHub, yetkisiz etkinlik olup olmadığını kesin belirledi. Telemetri su gibi net: O yolun her tetiklenmesi Wiz araştırmacılarının kendi testlerine dayanıyordu. Başka kullanıcı yok, müşteri verisi erişilmedi, değiştirilmedi ya da sızdırılmadı. Enterprise Server için iş müşterilere kaldı; sömürü, o örnekteki doğrulanmış push erişimi gerektirir, erişim günlüklerini kontrol edin.

Katmanlı Savunma: Yamadan Fazlası

Doğrudan düzeltmenin ötesinde, GitHub’un analizi katmanlı savunmanın kritik dersini ortaya koydu. Sömürü kısmen, olmaması gereken ortamlarda diskte tehlikeli bir kod yolunun bulunmasından başarılı oldu. Eski dağıtım yöntemi bunu doğru dışlamıştı ama sonraki strateji değişikliği farkında olmadan geri getirmişti.

İşte mimari düşüncenin devreye girdiği yer. Bırakın alakasız gibi görünen sistem ayarlarının nasıl yeni zafiyetler doğurabileceğini gösteriyor. Bu gereksiz kod yolunu hedeflenmeyen ortamlardan kaldırarak GitHub bir katman daha güçlendirdi. Pragmatik yaklaşım: Anlık ihlali kapat, etrafındaki duvarları pekiştir ki benzer girişler bile zorlaşsın.

Siz Ne Yapmalısınız?

GitHub Enterprise Server kullanıcıları için mesaj net: Yükseltin. CVE-2026-3854 detaylarını öğrenin, desteklenen sürümlere yamaları uygulayın. Erişim günlüklerini alışılmadık etkinlik için gözden geçirmek de akıllıca.

Genel geliştiriciler içinse güçlü bir uyarı bu. Günde yüzlerce kez düşünmeden yaptığımız git push işlemi, karmaşık güvenlik sonuçları gizleyebiliyor. Alt protokolleri ve girdilerinizin nasıl işlendiğini anlamak her zaman en önemlisi. Bu olay sadece bir hata değil; köklü araçların bile sürekli dikkat ve derin mimari anlayış gerektirdiğini gösteren keskin bir örnek.

SSS

CVE-2026-3854 zafiyeti GitHub Enterprise Server kullanıcıları için ne anlama geliyor?

GHES örneğinizdeki bir depoya push erişimi olan kullanıcılar sunucuda rastgele komut çalıştırabilirdi. GitHub yamalı sürümlere hemen yükseltmeyi şiddetle öneriyor.

GitHub.com’da verilerim bu zafiyetten etkilendi mi?

Hayır. GitHub soruşturması, sömürü yolunun sadece araştırmacılar tarafından tetiklendiğini doğruladı; müşteri verisi erişilmedi, değiştirilmedi ya da sızdırılmadı.

Düzeltmeden sonra git push seçeneklerini kullanmaya devam edebilir miyim?

Evet, git push seçenekleri desteklenmeye devam ediyor. Düzeltme, kullanıcı değerlerinin düzgün temizlendiğini ve kötü niyetli komut enjeksiyonuna izin vermediğini garanti ediyor.


🧬 İlgili İçgörüler

Sam O'Brien
Written by

Programming language and ecosystem reporter. Tracks releases, package managers, and developer community shifts.

Worth sharing?

Get the best Developer Tools stories of the week in your inbox — no noise, no spam.

Originally reported by GitHub Blog