1 puan yazan GN⁺ 2025-08-20 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Güvenlik araştırma ekibi, CodeRabbit’in prodüksiyon sunucusunda uzaktan kod çalıştırma (RCE) ve API token’ları ile gizli bilgilerin sızdırılmasını başardı
  • Rubocop kullanan bir PR ile ortam değişkenleri ele geçirildi; PostgreSQL erişimi ve 1 milyondan fazla depoda okuma/yazma imkanı elde edildi
  • GitHub App’in private key’inin sızdırılmasıyla, public/private depolar dahil geniş çaplı depolara zararlı kod enjekte etme, kaynak kodunu değiştirme gibi gerçek zararlar mümkün hale geldi
  • CodeRabbit tarafı, açık bildirildikten sonraki saatler içinde hızla müdahale etti ve güvenlik önlemlerini güçlendirdi
  • Harici araçlar çalıştırılırken sandbox izolasyonu, en az yetki ve ağ erişiminin engellenmesi gibi önlemlerle güvenlik olaylarının önlenmesi gereği vurgulandı

Giriş

  • Ocak 2025’te Kudelski Security araştırma ekibi, CodeRabbit’teki ciddi bir güvenlik açığını kamuoyuna açıkladı
  • PR inceleme otomasyonu için yaygın biçimde kullanılan CodeRabbit’te uzaktan kod çalıştırma (RCE), ortam değişkenleri ile hassas bilgilerin sızması ve 1 milyondan fazla depoda okuma/yazma yetkisi elde edilmesi gibi kritik sorunlar doğrulandı
  • Bu yazı, Black Hat USA’de sunulan açığın ayrıntılı analizini içeriyor ve kod tabanlı inceleme araçları ile entegre sistemlerdeki zafiyetlere dair gerçek bir örnek olarak yüksek referans değeri taşıyor
  • Bildirilen açıklar, raporlamanın hemen ardından hızlıca yamandı

CodeRabbit’e genel bakış

  • CodeRabbit, GitHub/GitLab Marketplace’te en çok kurulan yapay zeka tabanlı kod inceleme uygulaması
  • İki platformda da 1 milyon depo ve 5 milyon pull request inceliyor
  • Kullanıcı bir PR oluşturduğunda veya güncellediğinde, yapay zeka motoru kodu analiz ederek yorum ve önerileri otomatik üretiyor
  • Kod özeti, güvenlik açığı tespiti, iyileştirme önerileri, diyagram üretimi gibi alanlarda geliştirici verimliliğini ciddi biçimde artırıyor

CodeRabbit kullanımı ve yetki yapısı

  • Pro plan, linter ve SAST (statik analiz) araçlarıyla entegrasyon sunuyor
  • GitHub hesabıyla kimlik doğrulama ve uygulama kurulumu sırasında, seçilen depolara okuma/yazma yetkisi veriliyor
  • Bu yetki yönetimi kötüye kullanılırsa, kurulu olduğu tüm depolardaki koda doğrudan etki edebilir

Harici araç çalıştırma ve istismarın keşfi

  • CodeRabbit, PR içindeki kod değişikliklerini algıladığında birden fazla harici statik analiz aracını (ör. Rubocop) otomatik olarak çalıştırıyor
  • Rubocop, .rubocop.yml yapılandırma dosyası üzerinden harici Ruby eklenti dosyalarını (ext.rb vb.) yükleyebilecek şekilde tasarlanmış
    • Saldırgan, .rubocop.yml ve ext.rb içine kötü amaçlı kod yerleştirip PR göndererek CodeRabbit’in bu kodu uzak sunucuda çalıştırmasını sağlayabiliyor
  • Bu teknikle çalışan kod, sunucudaki tüm ortam değişkenlerini saldırganın sunucusuna gönderdi

Ortam değişkeni sızıntısının analizi

  • Sızan ortam değişkenleri arasında çeşitli servislerin API key’leri, token’ları ve parolaları bulunuyordu
    • Anthropic/OpenAI API anahtarları, encryption salt/password, GitHub App private key’i, PostgreSQL bağlantı bilgileri vb.
  • RCE üzerinden veritabanına erişim, kod değiştirme ve servis içi bilgilerin sızdırılması gibi ikincil etkiler büyük ve yayılım potansiyeli yüksek
  • Gerçek sunucuda daha ileri kötü amaçlı keşif yapılabilirdi; ancak servis operasyonu gözetilerek yalnızca minimum doğrulama yapılıp duruldu

1 milyon depoda okuma/yazma yetkisi elde edilmesi

  • Ortam değişkenlerinde yer alan GITHUB_APP_PEM_FILE (private key) kullanılarak GitHub API’ye kimlik doğrulama yapılabiliyordu
  • CodeRabbit’in erişebildiği tüm depolarda (public/private dahil)
    • kaynak kodunu okuma/yazma, release dosyalarını değiştirme (tedarik zinciri saldırısı), git geçmişini değiştirme gibi son derece güçlü yetkiler kullanılabiliyordu
  • Yeniden üretim kodu (PoC) yayımlandı ve açığın pratikte istismar edilebilir olduğu kanıtlandı

PoC özeti

  • PyGitHub gibi kütüphaneler kullanılarak sızdırılan private key, App ID vb. ile istenen herhangi bir depo için erişim token’ı üretilebildi
  • Bu token ile private repository klonlama, dosya değiştirme, yeni commit atma ve release dosyalarını manipüle etme işlemleri otomatikleştirilebiliyordu

CodeRabbit’in şirket içi/gizli depolarının ihlal edilebilmesi

  • CodeRabbit organizasyonu da bu uygulamayı kendi servisinde kurup kullandığı için, CodeRabbit’in iç kaynak kodu depolarına erişmek ve bunları klonlamak da mümkündü
  • Yalnızca organizasyon adı biliniyorsa, kurulum ID’si sorgulanıp ilgili depo listesine doğrudan erişmek mümkün oluyordu

Etki özeti

  • Private repository’lere yetkisiz erişim ve kişisel veri sızıntısı
  • Kaynak kod manipülasyonu, zararlı yazılım/arka kapı ekleme gibi tedarik zinciri saldırısı tehditleri
  • GitHub Actions gibi ek zafiyetlerle zincirleme kullanım ihtimali
  • Doğrudan RCE nedeniyle veri yıkımı, servis kesintisi ve diğer hizmetlere sıçrayan zararlar

Bağlam ve yapay zekanın karar sınırları

  • Saldırı sırasında bile PR’nin kendisi CodeRabbit tarafından normal şekilde incelendi; açıkla ilgili uyarı yorumu bıraksa da tehdit oluşturan ifadeyi fiilen tespit edemedi
  • Bu durum, “yapay zeka kod inceleme aracı”nın gerçek risk bağlamını her zaman anlayamadığını gösteriyor

Müdahale ve öneriler

  • CodeRabbit, açık bildirildikten sonraki saatler içinde Rubocop’u devre dışı bıraktı, gizli bilgileri yeniledi ve sistem denetimi yaptı
  • Sorun, sandbox uygulanmayan bir araçta (Rubocop) ortaya çıktı; müdahale sonrası tüm harici araçların izole ortamlarda çalıştırılması yönünde iyileştirme yapıldı
  • Güvenliği güçlendirmek için, harici araç çalışma ortamında ortam değişkenlerinin en aza indirilmesi, ağa erişebilen IP’lerin sınırlandırılması ve internet erişiminin kapatılması gibi savunmacı tasarım gereksinimleri vurgulandı

Sorumlu açıklama ve sonuç

  • Ocak 2025’te, bildirim sonrasında hızlı müdahale ve düzeltme adımları atıldı
  • Çalışma PoC ile sınırlı kaldı; ancak kötü niyetli bir saldırganın yüksek değerli depoları seçerek büyük ölçekli fidye yazılımı veya yıkıcı tedarik zinciri saldırıları için bunu kolayca kötüye kullanabileceği görüldü
  • Harici analiz araçları ve yapay zeka tabanlı otomasyon servisleriyle entegrasyonda, sandbox ve en az yetki ilkesinin ne kadar kritik olduğu bir kez daha doğrulandı

Henüz yorum yok.

Henüz yorum yok.