1 puan yazan GN⁺ 2025-04-01 | 1 yorum | WhatsApp'ta paylaş
  • 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.py hazı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 v3 tag’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-action deposunu referans alıyor ve v3 tag’i temel alınıyor
  • Saldırganlar v3 tag’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/config ve _temp/ dizinindeki dosyaların yanlışlıkla dahil edilmemesine dikkat edin
  • GITHUB_TOKEN için yalnızca salt okunur yetki verin
  • Yükleme öncesinde gizli anahtar taraması yapılması önerilir (Nosey Parker gibi 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

1 yorum

 
GN⁺ 2025-04-01
Hacker News görüşleri
  • GitHub’ın değiştirilemez actions özelliği yayınlanırsa saldırıların %70’inden fazlasını çözebileceği yönünde bir görüş var
    • GitHub’ın haftalık sorunlarının onları bunu yayınlamaya zorlayacağı düşünülüyor
  • Geçici token’ın neden yeni dağıtımlar oluşturma ve artifact kanıtı üretme yetkisine sahip olduğuna dair bir açıklama yok
    • Sorunu çözmek için debug log’ları devre dışı bıraktılar, ancak geçici token’ın yetkilerini kod analiz motoruna daha uygun olacak şekilde değiştirip değiştirmedikleri konusunda bir yanıt yok
  • CI ve CD’nin tamamen ayrı ortamlar olması gerektiğine giderek daha fazla ikna oluyorum
    • CI’nin ele geçirilmesi, CD ile ilgili token’ların sızmasına yol açmamalı
  • GitHub’ın müdahale süresi oldukça etkileyici
  • Soyadı Prater olan biri olarak praetorian.com alan adına sahip olmak istediğini söyleyen bir görüş var
  • Herkese açık GitHub actions kullanmak sorun çıkarabilir; workflow süreçlerini analiz etmeden kullanmak ise daha da riskli
    • Bunun yerine woodpecker veya diğer başarılı CI builder’ları (circle, travis, gitlab vb.) kullanıp kendi kendine barındırma öneriliyor
  • OpenZFS PR’lerinde CodeQL kullanıldığı ve OpenZFS tarafında bir sorun olmadığı belirtiliyor
    • OpenZFS’in kodu gizli değil
  • Sorunun çözülüp çözülmediğini merak eden bir görüş var
  • Sitenin performansının çok kötü olduğu, bu yüzden kaydırmanın neredeyse imkansız olduğuna dair bir şikayet var