---
title: "Claude Code izin dosyası 1.122 GitHub repo'sunda parola sızdırıyor"
description: "Claude Code sızıntısı: settings.local.json, onaylanan komutlardaki parolaları sakladı ve 1.122 public GitHub kopyasında secret bulundu."
image: "https://sezer.in/wp-content/uploads/2026/11/claude-code.jpg"
url: "https://sezer.in/haberler/claude-code-sizintisi-github-secret/"
date: "2026-11-07T21:06:19+03:00"
updated: "2026-11-07T21:06:19+03:00"
author: "Sezer Şanlıkan"
lang: "tr"
source: "https://sezer.in/haberler/claude-code-sizintisi-github-secret/"
---

# Claude Code izin dosyası 1.122 GitHub repo'sunda parola sızdırıyor

Apiiro'nun yayımladığı Claude Code sızıntısı araştırmasına göre public GitHub repo'larındaki 1.122 adet .claude/settings.local.json kopyası en az bir secret içeriyor. Kullanıcı "Yes, and don't ask again" seçeneğini işaretlediğinde araç onaylanan komutu, içindeki parola veya token ile birlikte, düz metin olarak bu dosyaya yazıyor. Araştırmacılar, temizlikten önce dosyanın tuttuğu her secret'ın değiştirilmesini öneriyor.

## Claude Code nedir ve nerede kullanılır?

Claude Code, Anthropic'in terminalde çalışan yapay zekâ kodlama asistanıdır. Kod okuyup düzenleyebilir, shell komutları çalıştırabilir ve commit atabilir; hangi komutların sorulmadan çalışacağını izin kurallarıyla yönetir. Yazılım geliştiriciler günlük kodlama ve otomasyon işlerinde kullanır. Benzer araçlar arasında Cursor ve Gemini CLI sayılabilir.

## İzin kuralı komutu olduğu gibi saklıyor

Claude Code'da "Yes, and don't ask again" dediğiniz an komut, allow rule olarak .claude/settings.local.json içine giriyor. Prompt pattern yerine tam komutu önerdiyse komuttaki parola da dosyaya yazılıyor. Sızıntı, varsayılan davranışın doğrudan sonucu.

Araştırmacıların karşılaştırdığı 16 coding agent içinde bunu varsayılan olarak yaptığı doğrulanan tek araç Claude Code.

Aracın koruması global git excludes listesi. Bu liste tek bilgisayarda, tek kullanıcının git ayarında duruyor. Repo'nun kendi .gitignore'una hiçbir şey eklenmiyor, dolayısıyla başka bir makinede dosya git'e girebiliyor. İzlenen 1.105 repo'nun 539'unda dosyayı değiştiren commit'te Claude co-author olarak görünüyor; agent dosyayı kendisi commit edebiliyor.

## Claude Code sızıntısı scanner'lara neden takılmıyor

Pipeline'ınızda gitleaks veya TruffleHog çalışıyor diye rahatlamayın. Araştırmacılar iki aracı verification adımı olmadan çalıştırdı: 1.122 dosyanın 564'ünü gitleaks, 643'ünü TruffleHog işaretledi. 215 dosyayı ikisi de görmedi.

Sebep açık. Scanner'lar bilinen key formatlarını arıyor. PGPASSWORD=, sshpass -p veya mysql -p sonrasındaki parola, komut satırında sıradan bir kelime gibi duruyor. Claude Code sızıntısının en çok vurduğu yer de burası: secret'ların üçte birinden fazlası doğrudan veritabanı açıyor, 379'u veritabanı parolası. Bunlara 43 SSH girişi, 42 GitHub, GitLab ve npm token'ı, 23 AWS key'i ekleniyor.

Repo'larınızda hızlı bir el kontrolü için:

```
git log --all --oneline -- .claude/settings.local.json .claude/settings.json
grep -nE "PGPASSWORD|sshpass -p|mysql -p" .claude/*.json
```

İlk komut dosyanın history'de bir izi olup olmadığını gösteriyor. Dosya şu an yoksa bile çıktı boş gelmeyebilir.

## Önce değiştirin, sonra temizleyin

Dosyayı silmek sızıntıyı geri almıyor. Eski sürümlerde 509 repo'da 734 secret daha var ve bunlar güncel kopyaların hiçbirinde yok. 74 repo'nun 211 fork'u aynı secret'ları taşıyor. History'yi yeniden yazsanız bile fork'lar sizin elinizde değil.

Sıra şöyle olsun:

- Dosyanın tarihi boyunca tuttuğu her parola, token ve key'i değiştirin. Public bir sunucu adresiyle eşleşen credential'lardan başlayın, erişimi verenler onlar.
- Dosyanın takibini bırakın ve repo'nun .gitignore'una ekleyin.
- Organizasyonun .gitignore şablonlarına aynı satırı koyun.

```
git rm --cached .claude/settings.local.json
echo ".claude/settings.local.json" >> .gitignore
```

Secret içeren dosyaların yarısı en az 217 gündür default branch'te duruyordu. Apiiro secret'ların çalışıp çalışmadığını test etmedi, fakat bildirim yapılan bir şirket key'inin aktif olduğunu doğruladı.

## Laptop'lar ve artifact'ler de kapsamda

Dosya hiç commit edilmemiş olsa bile proje klasöründe düz JSON olarak duruyor. Npm paketine, Docker image'ına, zip arşivine veya senkronize bir klasöre girebiliyor. Image build ediyorsanız .claude/ dizinini .dockerignore'a, paket yayımlıyorsanız yayımlanan dosyaların dışına alın.

Eylül 2025'teki Shai-Hulud worm'u bulaştığı makinelerde TruffleHog çalıştırmıştı; developer laptop'u bilinen bir hedef. Kendi makinenizdeki dosyayı açın ve secret içeren her kuralı silin.

Kalıcı çözüm alışkanlıkta. Parolayı komuta yazmak yerine secret manager'dan gelen $DB_URL gibi bir değişken kullanın; kayıtlı kural o zaman yalnızca değişken adını tutar. Tek komut yerine Bash(npm run:\*) gibi bir pattern onaylayın.

Güvenlik ekibindeyseniz .claude/, .cursor/, .gemini/ ve .specstory/ klasörlerini ve agent memory dosyalarını .env gibi değerlendirin. Pre-commit ve CI taramasına history ile birlikte ekleyin. Kullandığınız scanner'ın komut içindeki parolayı yakalayıp yakalamadığını yukarıdaki üç kalıpla deneyin.

## Raporlar bot ile kapandı

Davranış ilk kez 11 Ağustos 2025'te bir bug raporuyla bildirildi. Rapor 60 gün hareketsiz kalınca 3 Ocak'ta otomatik bir bot onu "not planned" etiketiyle kapattı. Araştırmacıların andığı dört raporun hepsini aynı bot kapattı, sonuncusunu dün. Araştırmacılara göre Anthropic hiçbirine yanıt vermedi.

Anthropic, Claude Code sızıntısı için araçta bir düzeltme duyurmadı. Korumayı .gitignore şablonları, pre-commit kancaları ve CI taraması ile kendi tarafınızda kurun.
