· kaynak dev.to (home feed)
Claude Code'un 'bir daha sorma' kuralları 1.122 herkese açık ayar dosyasında sır bıraktı
Apiiro, Claude Code'un yerel ayar dosyasının sır içeren 1.122 herkese açık kopyasını buldu; bu dosyalardan 215'ini hem gitleaks hem de TruffleHog gözden kaçırdı.

Tarama ve rakamlar
Güvenlik firması Apiiro, herkese açık GitHub'da, bir kullanıcı bir komutu "Evet, ve bir daha sorma" seçeneğiyle onayladığında Claude Code'un yazdığı dosya olan .claude/settings.local.json dosyasını aramaya koyuldu. The Hacker News'in 7 Kasım'da aktardığı ve Gabriel Anhaia'nın dev.to'daki yazısının ayrıntılandırdığı üzere, firma bu dosyanın 103.617 herkese açık repository'deki 104.185 kopyasını inceledi ve en az bir sır içeren 1.122 kopya — toplamda 1.379 farklı kimlik bilgisi — buldu.
Asıl sorun tespit: gitleaks etkilenen 1.122 dosyanın 564'ünü, TruffleHog ise 643'ünü işaretledi; rapora göre 215'i her iki tarayıcı tarafından da gözden kaçırıldı.
Bir onay nasıl düz metin sır haline geliyor
Kullanıcı "Evet, ve bir daha sorma" seçeneğini seçtiğinde, Claude Code komutu repository'nin kökündeki .claude/settings.local.json dosyasına kalıcı bir izin kuralı olarak kaydediyor. Kurallar bazen örüntü biçiminde oluyor (dokümantasyondaki örnek npm test *), ancak tam komut kuralları komutun tüm metnini — şifre dahil — kaydediyor. Ağustos 2025 tarihli bir hata raporu, kimlik bilgisi taşıyan komutların bu dosyaya birebir, düz metin olarak kaydedildiğini gözlemlemişti.
Rapora göre Apiiro'nun araştırmacıları bunu güncel modellerle yeniden üretti; yazıda bu modeller Opus 5.5 ve Fable 5.1 olarak adlandırılıyor. Dokümantasyonlarını karşılaştırdıkları 16 coding agent arasında Claude Code, onaylanan komutun tamamını varsayılan olarak bir proje dosyasına kaydedildiği doğrulanan tek araçtı.
Yerleşik koruma neden yeterli değil
Claude Code dosyayı git'in dışında tutmaya çalışıyor: ayarlar dokümantasyonuna göre bir repository'de dosyayı ilk yazdığında, onu kullanıcının global git excludes dosyasına ekliyor. Bu tek bir makineyi koruyor. Global bir exclusion asla commit edilmediği için repository ile birlikte bir ekip arkadaşının clone'una, bir CI runner'a veya yeni bir laptop'a taşınmıyor. Elle oluşturulan bir dosya hiç exclusion almıyor ve hiçbir ignore kuralı zaten commit edilmiş bir dosyayı untrack edemiyor.
Commit işinin bir kısmını agent'ın kendisi yapıyor gibi görünüyor: Apiiro'nun izleyebildiği 1.105 repository'den 539'unda, Claude'yi co-author olarak listeleyen bir commit dosyayı değiştirdi. Paylaşılan ekip dosyası da açığa çıkıyor — ekiplerin bilerek commit ettiği .claude/settings.json dosyasının 76.011 herkese açık kopyasından 298'i sır içeriyordu. VS Code eklentisinin onay kartı bir kuralı bu paylaşılan dosyaya yönlendirebiliyor; CLI ise her zaman yerel dosyaya yazıyor.
Dosyalarda ne vardı
Sırların üçte birinden fazlası doğrudan veritabanlarına erişim sağlıyordu; bunlara 379 veritabanı şifresi dahildi. Sayımda ayrıca herkese açık sunucular için 43 SSH girişi, 42 GitHub, GitLab ve npm token'ı ile 23 AWS anahtarı var; GBHackers 122 Supabase service-role anahtarı daha ekliyor. Etkilenen dosyalar 63 kuruma ait; rapor bunları çoğunlukla yazılım şirketleri olarak tanımlıyor.
Etki alanı mevcut dosya içeriklerinden daha geniş: git geçmişinde 509 repository'de 734 sır daha vardı ve 74 repository'nin 211 fork'u aynı kimlik bilgilerini taşıyor. Paylaşılan ayarlar, geçmiş ve kaydedilmiş agent sohbet günlükleri dahil GBHackers toplamı 1.994 repository'de 2.539 sır olarak veriyor.
Metodolojinin sınırları var. Apiiro, bir değeri bilinen bir anahtar biçimiyle eşleştiğinde ya da bir şifre veya token herkese açık bir sunucu adresinin yanında durup yapay zeka destekli bir inceleme de onayladığında sır olarak saydı; firma kimlik bilgilerinin hâlâ geçerli olup olmadığını kontrol etmedi. Bildirim yaptığı şirketlerden biri anahtarının gerçekten canlı olduğunu doğruladı. Tarayıcıların kaçırdığı 215 dosyanın çoğu, komutların içine gömülü şifrelerdi — PGPASSWORD=, sshpass -p veya mysql -p sonrası — ve örüntü tabanlı tarayıcıların bel bağladığı sağlayıcı önekinden yoksunlar.
Kullanıcılar ne yapmalı
Sıra önemli: The Hacker News'in aktardığına göre Apiiro'nun tavsiyesi, herkese açık bir sır herhangi bir geçmiş yeniden yazımından bağımsız olarak ele geçirilmiş sayılacağı ve fork'lar kendi kopyalarını koruduğu için, temizliğe başlamadan önce dosyalarda bulunan tüm kimlik bilgilerini rotate etmek. Rotate ettikten sonra dosyayı untrack edin, repository'nin kendisinde ignore edin ve kayıtlı her kuralı incelemek için Claude Code'da /permissions komutunu çalıştırın.
Önleme büyük ölçüde komut metninden sabit değerleri uzak tutmaktan geçiyor: bir ortam değişkenine referans vermek (PGPASSWORD="$DB_PASSWORD") değeri değil değişken adını kaydediyor ve tek seferlik komutlar yerine komut örüntülerini onaylamak argümanları kurallardan tamamen uzak tutuyor. Apiiro ayrıca agent dizinlerini .env dosyaları gibi ele almayı öneriyor — bunları organizasyonel ignore şablonlarına eklemek ve pre-commit hook'ları ile CI'da .claude/, .cursor/, .gemini/ ve .specstory/ dizinlerini, geçmiş dahil, taramak.
Özellikle, dev.to yazısının belirttiğine göre 2025 tarihli özgün hata raporu 60 günlük hareketsizliğin ardından 3 Ocak 2026'da bir bot tarafından "planlanmadı" olarak kapatıldı; yani bir ürün değişikliğini beklemek pek bir plan sayılmaz.
Neden önemli
Bu, AI kodlama araçları kullanan herkes için pratik bir güvenlik olayı, teorik bir kaygı değil. Onay istemlerini azaltmak için tasarlanmış bir kullanım kolaylığı özelliği, düz metin kimlik bilgilerini proje dosyalarına kalıcı olarak yazan bir mekanizmaya dönüştü ve bu dosyalar herkese açık GitHub'a ulaşıyor — bazen agent'ın kendisi tarafından commit ediliyor. Daha kötüsü, bu yolla sızan kimlik bilgileri, ana akım tarayıcıların yakalamakta en kötü olduğu türden: tanınabilir bir öneki olmayan satır içi şifreler. Coding agent'lar commit iş akışının daha fazlasını devraldıkça, izin ve yapılandırma dosyaları .env ile aynı hijyeni hak ediyor.
- #claude-code
- #security
- #secrets
- #github
- #ai-coding
İlgili yazılar
- GitGuardian: herkese açık GitHub commit'lerinde sızan secret sayısı %34 arttı, AI destekli commit'ler iki katı hızla sızdırıyor
- GitHub pull request genel bakış sayfasını yeniden tasarladı, birleştirme durumu üste taşındı (public preview)
- Drupal, Entity List 3.0.10'da CVE-2026-108099'i düzeltti; sömürtü kanıtları sınırlı