GitHub Actions’da Yeni Güvenlik Açığı: Cordyceps
Çeşitli CI/CD araçlarında keşfedilen Cordyceps isimli güvenlik açığı, hackerların sistemlere sızma şansını artırıyor. Novee Security araştırmacıları, bu açığın ciddi bir tehdit oluşturduğunu vurguluyor ve 30,000’den fazla yönetimsel havuz üzerinde gerçekleştirdikleri incelemeler sonucunda 654 havuzda açık tespit etmişlerdir.
Tehditin Boyutu ve Etkisi
Açık, Microsoft, Google, Apache, Cloudflare ve Python Software Foundation gibi önde gelen firmaların projelerini kapsıyor. Saldırganların bu zafiyetten yararlanmak için sadece bir ücretsiz GitHub hesabına sahip olmaları yeterli; ayrıca kurumsal üyelik veya yükseltilmiş izinler gerekmiyor.
Açığın Mekanizması
GitHub Actions iş akışları genellikle pull_request ile tetiklenir ve bu, güvenilir olmayan bir fork ortamında çalışır. Ancak, pull_request_target ve workflow_run ile tetiklenen süreçler, ana depodan gizli bilgilere erişme yeteneğine sahip.
- Komut Enjeksiyonu: Saldırgan, koşul listesini doğrudan çalıştırarak zararlı kodu iş akışına entegre edebilir.
- Kod Enjeksiyonu: actions/github-script kullanarak saldırgan girdisini JavaScript olarak değerlendirilmesini sağlayabilir.
- Çapraz İş Akışı Yetki Yükseltmesi: Düşük yetkili bir iş akışı, güvenilir olmayan verileri yüksek yetkili bir iş akışına aktararak özellikle bu zafiyetten yararlanabilir.
Açık, çalışma akışlarının nasıl bağlandığı ile ilgilidir. Her bir dosya ve işlem düzgün görünse de, birlikte çalıştıklarında güvenlik açığı oluşturabilirler.
Etkilenen Sistemler
Örneğin, Microsoft’un Azure Sentinel havuzunda, bir pull request üzerindeki yorum, saldırganların kod çalıştırmasına ve kalıcı bir GitHub App anahtarını çalmalarına olanak tanımıştır.
Diğer bir örnekte, Google’ın AI Agent Development Kit deposunda da benzer bir şekilde, bir pull request ile yüksek yetkilere sahip erişim elde edilebilir.
Nasıl Korunabiliriz?
Güvenliği sağlamak için derhal bazı önlemler almanız önerilir:
- Untrusted katkılar için her zaman pull_request yöntemini kullanın.
- Güvenli iş akışları içinde pull request başlık kodunu kontrol etmeyin.
- Olay verilerini, sıralı bir çevresel değişken aracılığıyla geçirin.
- Varsayılan izinleri yalnızca okuma durumuna ayarlayın.
- Üçüncü taraf eylemleri için hareketli etiket yerine belirli bir commit SHA ile bağlantı kurun.
- Özel iş akışlarını ilk kez katkılarda manuel onay ile kısıtlayın.
Bu önlemler alındığında, mevcut sorunları kapatabilir; ancak zafiyeti sınırlamak için köklü bir güvenlik yaklaşımına ihtiyaç vardır.
Sonuç ve Öneriler
Cordyceps zafiyeti, herhangi bir güvenlik aracını aşmamış, yalnızca geçiş yapmıştır. Güvenlik sistemlerinizi güçlendirmek için yapmanız gerekenler:
- Sistem güncellemelerinizi yapın.
- Kullanmadığınız portları kapatın.
- Ücretsiz GitHub hesap kullanımını gözden geçirin ve güvenli paylaşımlarınızı sıkı şekilde inceleyin.
Aksi takdirde, gitmeye devam eden güvenlik açıkları ile karşı karşıya kalabilirsiniz. Herkesin güvenliği için önlemleri ihmal etmeyin.

