Giriş
Son dönemde, Anthropic’in Claude Code GitHub Action’ında keşfedilen bir açık, kötü niyetli kişilerin, yalnızca bir GitHub sorusu açarak savunmasız halka açık depoları ele geçirmesine olanak tanıdı. Söz konusu hata, yazılım tedarik zincirleri için ciddi bir tehdit oluşturuyor.
Saldırı Nasıl Çalışıyor?
RyotaK, GMO Flatt Security’den, bu açığı Ocak ayında Anthropic’e bildirdi ve Anthropic, dört gün içinde claude-code-action v1.0.94 ‘te düzeltmeler yaptı. Anthropic, bu sorunun CVSS v4.0 altında 7.8 olarak derecelendirildiğini ve bir hata ödülü ödendiğini belirtti.
Claude Code GitHub Actions, CI/CD süreçlerine entegre edilerek sorunları sınıflandırma, etiketleme, çekme isteklerini gözden geçirme veya komutları çalıştırma işlevlerini yerine getirir. Varsayılan olarak, bu iş akışı, deponun koduna, sorunlarına, çekme isteklerine, tartışmalarına ve iş akışı dosyalarına okuma ve yazma erişimi sağlar. Ancak, bu izinlerin geniş olması nedeniyle, bu eylemin tetiklenebilmesi için sadece yazma iznine sahip kullanıcılar tarafından başlatılmasına izin verilmesi gerekmektedir.
Tetikleyici kontrolü, [bot] ile biten herhangi bir aktörü engellemeyen bir açık barındırıyordu. GitHub Uygulamaları’nın güvenilir varlıklar olduğu varsayımıyla, herkes kendi GitHub Uygulaması’nı kaydedebilir ve bunu bir depoya yükleyerek, herhangi bir halka açık depoda sorun veya çekme isteği açmak için kullanabilir. Bu durumda, eylem “bir bot” olarak algılanarak saldırganın içeriğine izin verildi.
Etkilenen Sistemler
Açıkla, saldırgan dolaylı istem enjeksiyonuna (indirect prompt injection) yönelir; bu, bir AI’nin okuduğu içeriğin içine talimatlar yerleştirme taktiğidir. RyotaK, bir hata mesajı gibi görünen bir içerik yazdı ve Claude’un bu içeriği çalıştırarak komutları yürütmesini sağladı. Hedef, gizli bilgileri içeren süreçlerin çevresel değişkenlerini saklayan /proc/self/environ dosyasıydı.
Bu değişkenlerdeki en önemli ele geçirilecek nesne, GitHub Actions’ın bir OIDC token isteği yapmak için kullandığı kimlik bilgisi çiftidir. Bu token, “ben bu depoda çalışan iş akışıyım” kimliğini kanıtlar. Claude Code, bu token’ı Anthropic’in arka ucu ile değiş tokuş ederek yazma erişimine sahip bir Claude GitHub Uygulama yükleme token’ı edinir. Bu kimlik bilgilerini çalan ve değişimi tekrarlayan bir saldırgan, hedefin koduna, sorunlarına ve iş akışlarına yazma erişimi elde eder.
Çözüm ve Korunma
Çözüm için, claude-code-action v1.0.94 veya daha yenisine güncelleyin. Ayrıca, yazma iznine sahip olmayan kullanıcıların veya botların Claude’u tetiklemesine izin veren herhangi bir iş akışını denetleyin. Eğer güvenilmeyen girdiler alıyorsanız, sadece Anthropic API anahtarını ve GITHUB_TOKEN ‘ı besleyin ve veri sızdırma amaçlı kullanılabilecek araçları ve izinleri kaldırın.
Ayrıca, Anthropic’in örnek iş akışı, allowed_non_write_users: “*“ olarak ayarlandığı için hiçbir kısıtlama olmadan tetikleyici olmaktadır. Bu da birçok depoda ciddi bir açık yaratabilir.
Sonuç
Bu açıkla ilgili olarak atılması gereken önemli adımlar şunlardır:
- Hızla claude-code-action v1.0.94 veya daha üstü versiyona güncelleyin.
- Herhangi bir iş akışını gözden geçirerek yazma iznine sahip olmayan kullanıcıların veya botların tetikleme erişimini kısıtlayın.
- Güvenilmeyen girdileri kontrol altına alın ve yalnızca gerekli kimlik bilgilerini paylaşın.
Siber güvenlik tehditlerinin giderek arttığı bu dönemde, gerekli önlemleri almak hayati önem taşımaktadır. Aklınızdaki güvenlik açıklarını kapatmak için harekete geçin!


