CodeQL tedarik zinciri saldırısı tehdidi – Açığa çıkan GitHub gizli anahtarından başlayan güvenlik olayı
(praetorian.com)- Açığa çıkan bir GitHub gizli anahtarı (Secret) nedeniyle GitHub’ın statik analiz aracı CodeQL, bir tedarik zinciri saldırısına maruz kaldı
- Söz konusu anahtar 1.022 saniye boyunca geçerliydi ve bu süre içinde saldırganlar GitHub Actions iş akışlarında rastgele kod çalıştırabiliyordu
- Bu zafiyet herkese açık bir CVE olarak kayda geçti: CVE-2025-24362
Başlıca etki senaryoları
Saldırganlar bu zafiyet üzerinden aşağıdaki saldırıları gerçekleştirebilirdi:
- CodeQL kullanan depoların kaynak kodunu sızdırma (fikri mülkiyet ihlali)
- GitHub Actions gizli anahtarlarını ele geçirme ve ikincil saldırılar düzenleme
- İç altyapıda CodeQL iş akışları üzerinden kod çalıştırma
- GitHub Actions Cache kullanan iş akışlarının gizli anahtarlarını da ele geçirme
Saldırının tespiti ve deney süreci
- Praetorian araştırma ekibi, GitHub Actions tarafından oluşturulan iş akışı artifact’leri içinde yer alan gizli anahtarları tarayan bir araç geliştirdi
- CodeQL ile ilgili depolarda gizli anahtar içeren bir debug artifact bulundu
- Söz konusu anahtar geçerliyken saldırganların branch/tag oluşturup dosya push edebildiğini kanıtlayan PoC aracı
artifact_racer.pyhazırlandı ve çalıştırıldı
Temel deney sonuçları
- Saldırganlar bu token ile şunları yapabiliyordu:
- yeni branch oluşturma
- dosya push etme
- tag ekleme
- CodeQL varsayılan olarak
v3tag’ini referans alıyor ve saldırganlar bu tag’i ezebiliyordu → tüm CodeQL kullanıcılarına kötü amaçlı kod dağıtımı mümkün
Yayılma potansiyeli: Neden tehlikeli?
- Kullanıcıların çoğu CodeQL’i manuel olarak yapılandırmıyor; bunun yerine GitHub depo ayarlarında “Enable CodeQL” düğmesine tıklıyor
- Bu sırada otomatik olarak ayarlanan iş akışı
github/codeql-actiondeposunu referans alıyor vev3tag’i temel alınıyor - Saldırganlar
v3tag’ini kötü amaçlı bir commit ile değiştirirse, çok sayıda projede otomatik olarak kötü amaçlı kod çalıştırılabilir
Ek saldırı olasılığı: cache poisoning
- Varsayılan CodeQL iş akışı GitHub Actions Cache kullanıyor
- Bu sayede saldırganlar build pipeline’a kötü amaçlı cache enjekte edebilir, ardından sonraki iş akışlarında gizli anahtarları ele geçirip iç sistemlere erişebilir
- Öne çıkan olası hedefler:
GitHub’ın yanıtı ve yama
- Zafiyetin 22 Ocak 2025 tarihinde bildirilmesinin ardından GitHub, 3 saat içinde şunları yaptı:
- zafiyetli iş akışını durdurdu
- gizli anahtar yüklenmesini engelleyen bir PR açtı
- yama sürümünü yayımladı: CodeQL Action v3.28.3
- Resmî güvenlik duyurusu: GHSA-vqf5-2xx6-9wfm
Alınabilecek önlemler
- İş akışlarında artifact yüklerken yüklenen dosyaları sınırlandırın
- Ortam değişkenleri ile
.git/configve_temp/dizinindeki dosyaların yanlışlıkla dahil edilmemesine dikkat edin GITHUB_TOKENiçin yalnızca salt okunur yetki verin- Yükleme öncesinde gizli anahtar taraması yapılması önerilir (
Nosey Parkergibi araçlar kullanılabilir)
Sonuç
- CodeQL’in varsayılan yapılandırması bile çok sayıda projeyi tedarik zinciri saldırılarına açık hâle getirebilir
- GitHub Actions’taki güvenlik zafiyetleri hâlâ ciddi bir tehdit olmaya devam ediyor ve topluluğun sürekli ilgisi ile savunma stratejileri gerektiriyor
İlgili bilgiler
- CVE bilgisi: CVE-2025-24362
- PoC branch’i: testpoc
- Commit bağlantısı: Commit
- Tag bağlantısı: Tag
1 yorum
Hacker News görüşleri