AI kod asistanları, Git'in core.fsmonitor özelliğini istismar eden kötü amaçlı bir .git/config girişiyle ele geçirilebilir; bu durum, asistan dosyaları taradığı anda güvenilmeyen bir deponun (repository) geliştiricinin makinesinde komutlar çalıştırmasına olanak tanır.

Bu açık, Claude Code, Cursor, OpenAI Codex, Goose, Qwen Code, Grok Build ve Hermes gibi birçok popüler ajanda ortaya çıktı. Yamalanmış ajanlarda bu istismar artık çalışmıyor; diğerleri ise hâlâ savunmasız durumda. Ekstra tıklama veya onay gerektirmez ve kötü amaçlı kod, yapay zeka ajanının sağlayabileceği herhangi bir kum havuzunun (sandbox) dışında, kullanıcının kendi yetkileriyle çalışır.

Saldırı geliştiriciye nasıl ulaşır

  • Bir yüklenici bir projeyi sıkıştırıp e-posta ile gönderir.
  • Bir ekip arkadaşı ağ sürücüsünde bir klasör paylaşır.
  • Bir kod tabanı içeren USB bellek teslim edilir.

Her durumda depo, halihazırda bir .git klasörü içeren bir dizin olarak gelir. Bir yapay zeka asistanı klasörü açtığında, kodun bir görünümünü oluşturmak için genellikle arka planda git status komutunu çalıştırır. Git, bu işlemi, dosya sistemindeki değişiklikleri izlemek için harici bir program çağırmasını söyleyen core.fsmonitor ayarıyla hızlandırır. Eğer deponun .git/config dosyası core.fsmonitor için kötü amaçlı bir komut tanımlamışsa, Git kullanıcıya danışmadan bunu otomatik olarak yürütür.

Komut Git tarafından başlatıldığı için kullanıcının haklarını devralır ve yapay zeka aracının kurmuş olabileceği her türlü kum havuzunu (sandbox) atlar. İstismar, normal bir git clone, git fetch veya git pull işlemi sırasında tetiklenmez; yalnızca depo, .git meta verileri halihazırda mevcut olacak şekilde açıldığında (unpacked) etkinleşir.

Bu sorun neden önemli

Geliştiriciler; kod tamamlama, kodu yeniden yapılandırma (refactor) veya tüm modülleri oluşturma konusunda giderek daha fazla yapay zeka asistanlarına güveniyor. Bu araçların projenin dosya ağacının hızlı bir anlık görüntüsüne ihtiyacı vardır, bu nedenle Git komutlarını sessizce çağırırlar. Eğer kötü amaçlı bir depo o anda kod yürütebilirse, saldırgan, kullanıcı yalnızca bir yapay zeka yardımcısıyla kodu "kontrol ettiğini" sanırken, geliştiricinin iş istasyonunda görünür bir uyarı olmadan bir yer edinebilir. Potansiyel yük, kimlik bilgilerinin çalınmasından kalıcı arka kapılar (backdoors) yüklemeye kadar geniş bir yelpazeye yayılabilir.

Zehirlenmiş bir depoyu tespit etme

Bir depoyu bir asistana vermeden önce şunu çalıştırın:

git config --get core.fsmonitor

Boş olmayan bir çıktı, bir programın otomatik olarak çalışacak şekilde ayarlandığı anlamına gelir. Daha kapsamlı bir tarama için şüpheli Git ayarlarını listeleyin:

git config --local --list | grep -Ei 'fsmonitor|hooksPath|sshCommand|pager|editor|filter\.'

Eklemediğiniz girişler fark ederseniz, şununla temizleyin:

git config --local --unset core.fsmonitor

git config --global core.fsmonitor false ayarının sizi korumadığını unutmayın. Yerel depo ayarları her zaman küresel ayarları geçersiz kılar, bu nedenle kötü amaçlı bir depo küresel bir kuralı basitçe görmezden gelebilir.

Mevcut yama durumu

  • Claude Code – yamalandı (fsmonitor)
  • Cursor – yamalandı
  • OpenAI Codex – yamalandı
  • Goose – yamalandı
  • Qwen Code – yamalanmadı
  • Grok Build – yamalanmadı
  • Hermes – yamalanmadı

Yamalanmamış ajanları kullanan geliştiriciler, ya araç değiştirene ya da daha sıkı yerel Git politikaları uygulayana kadar gelen her depoyu potansiyel olarak tehlikeli olarak değerlendirmelidir.

Git topluluğundan karşı görüş

Git'in core.fsmonitor özelliği bir hata değil, meşru bir performans özelliğidir. Bakım yapanlar, sorumluluğun, Git komutlarını çağırmadan önce depo içeriklerini doğrulamak üzere çağıran tarafta olduğunu savunuyor. Özelliği küresel olarak devre dışı bırakmak basit bir azaltma yöntemidir, ancak belirtildiği gibi, yerel geçersiz kılmalar bu korumayı bozabilir. Daha geniş tartışma şu anda, yapay zeka asistanlarının tüm harici Git çağrılarını kum havuzuna (sandbox) alıp almaması veya özel fsmonitor kancaları (hooks) içeren depoları işlemeyi reddedip etmemesi gerektiği üzerinde yoğunlaşıyor.

Bundan sonra neye dikkat edilmeli

  • Yamalanmamış yapay zeka ajanlarından gelecek güncellemeler—özellikle Git çağrılarının kum havuzuna alınmasıyla ilgili her türlü açıklama.
  • Git'in güvenilmeyen dizinler için core.fsmonitor varsayılan işleyişindeki olası değişiklikler.
  • Bir deponun .git/config dosyasını bir asistana ulaşmadan önce temizleyebilen üçüncü taraf araçlar.

Özet

Gizli bir yapılandırma dosyasındaki tek bir satır, yapay zeka destekli bir kolaylığı uzaktan kod yürütme (remote-code-execution) vektörüne dönüştürebilir. Savunmasız ajanlar düzeltilene kadar, en güvenli uygulama, standart bir klonlama iş akışının dışında gelen her depoyu denetlemek ve bir yapay zeka asistanının koda dokunmasına izin vermeden önce tüm core.fsmonitor veya benzeri kancaları (hooks) temizlemektir.