# VC-075 · Güvenilmeyen deponun görev ve ayarları incelemeden otomatik çalışıyor

İncelemek için açtığın depo çalıştırılabilir görev ve ayarlar taşıyor. Editörün güven sınırı kapalıysa veya klasör önceden geniş kapsamla güvenilir sayılmışsa bu içerik makine yetkisi kazanabiliyor.

- Önem: ACİL. Etkisi büyük. Kodlama ajanı üzerinden tetiklenir ve tarayıcıdan görülür.
- Önem notu: Dışarıdan alınmış deponun geliştirici makinesinde açıldığı, güven sınırının kapatıldığı ve çalıştırma yollarının etkin olduğu durum temel alınır. Metin olarak inceleme tek başına kod çalıştırmaz. Yalıtılmış, sırsız ortam zararı azaltır.
- Eksen ve kategori: Güvenlik, 11 Ajan ve geliştirme ortamı
- Yığın: Cursor, Claude Code, Her yığın
- Yapay zekâ kodunda: ölçülmedi. Dayanak: uzman görüşü.
- Ne zaman bakılır: Kodlama ajanını kurarken, Her ay
- CWE: CWE-829
- OWASP Top 10:2025: A08:2025 Software or Data Integrity Failures
- Checklist ifadesi: Yeni açılan bir deponun görevleri ve ayarları incelenmeden otomatik çalışmıyor.
- Son inceleme: 4 Ekim 2026, Komünite editörlüğü
- Adres: https://vibecheck.komunite.com.tr/madde/guvenilmeyen-deponun-gorev-ve-ayarlari-otomatik-calisiyor

## 60 saniyelik kontrol

Yalnız kendi uygulamanda ya da yazılı izin aldığın sistemde dene. Bu bir sızma testi değildir.

1. Dışarıdan gelen depoyu önce metin olarak incele, kurulum ve görev çalıştırma.
2. Etkin Workspace Trust ayarını ve güvenilmiş üst klasörleri kontrol et.
3. tasks.json içindeki folderOpen görevlerini ve çalıştırılabilir dosya yolu veren ayarları bul.
4. Ajan ayarlarındaki hook, yerel MCP komutu ve yardımcı betikleri ayrıca incele.
5. Gerekli davranış denemesini sır ve ağ erişimi olmayan geçici ortamda yap.

## Ne oluyor

Bir örnek depoyu yalnız anlamak için editörde açıyorsun. Henüz kurulum komutu vermedin ve uygulamayı başlatmadın. Buna rağmen depo, klasör açıldığında çalışan görevler veya bir araca hangi programı çağıracağını söyleyen ayarlar taşıyabilir. Editör bu içerikleri güvenilir kabul ederse okumak için aldığın dosyalar çalıştırma yoluna girebilir.

Görev dosyasının bulunması tek başına açık değildir. Önemli olan hangi koşulda etkinleştiğidir. Güvenilmeyen klasörü kısıtlı açan bir istemci, görevi çalıştırmadan önce sınır koyabilir. Güven özelliğini kapatmak veya bütün indirme klasörüne güven vermek bu ayrımı ortadan kaldırabilir. Aynı makinede daha önce verilen geniş güven kararı yeni depo için de etkili olabilir.

Ajan entegrasyonu da bu incelemenin parçasıdır. Proje hook'u, yerel MCP sunucusunun başlatma komutu ve yardımcı betik birer çalıştırma yüzeyidir. Dosyanın adı ayar veya kural diye zararsız sayılmaz. Dışarıdan gelen içeriğin hangi anda makinede işlem yapabildiğini bulman gerekir. Editördeki güven seçeneği ile komut satırındaki ajan davranışı aynı kabul edilmemelidir.

## Gerçek olay

Bu maddede belirli bir depo açılış istismarı yaşanmış gibi anlatılmıyor. [VS Code Workspace Trust belgesi](https://code.visualstudio.com/docs/editing/workspaces/workspace-trust), tanınmayan projelerin görevler, hata ayıklama, ayarlar ve eklentiler üzerinden kod çalıştırabileceğini açıklar. Kısıtlı kip bu yolları sınırlamak için vardır. [Görev belgesi](https://code.visualstudio.com/docs/debugtest/tasks) de `folderOpen` davranışını ve otomatik görev ayarını tanımlar.

[Cursor güvenlik belgesi](https://cursor.com/docs/agent/security) kendi çalışma alanı güven desteğini ayrıca açıklar. Bu özelliklerin farklı ürünlerde ve sürümlerde aynı varsayılanla geldiği iddia edilmez. Örnekte VS Code kullanıcı ayarları karşılaştırılır. Statik test güven özelliğinin açık, otomatik görevlerin kapalı ve yabancı dosyaların ayrı pencereye yönlendirilmiş olduğunu denetler. Gerçek editör açılışı veya kötü amaçlı görev çalıştırılması yapılmaz.

## Yapay zekâ bunu neden üretiyor

**Ayar dosyası yalnız veri sanılır.** Ajan kodu incelerken kaynak dosyalarına odaklanabilir. Editör yapılandırması yardımcı ayrıntı gibi görünür. Oysa bazı ayarlar program yolu, komut veya açılış davranışı belirler. Bu dosyaların etkisi uygulama çalışmadan önce ortaya çıkabilir. Depoyu anlamak için yapılan hazırlık adımı da kapsam içinde değerlendirilmelidir.

**Kurulum kolaylığı kalıcı güvene dönüşür.** Bir proje için tekrar sorulmasın diye üst klasör güvenilir yapılabilir. Daha sonra başka kaynaktan indirilen depo aynı klasöre konur. İlk kararın hangi dosyaları kapsadığı unutulmuştur. Ajan yalnız yeni deponun içeriğini görerek bu kullanıcı ayarının varlığını anlayamayabilir. Makine ayarı ayrı kanıt gerektirir.

**Etkileşimli davranış otomasyona taşınır.** Editörde güven sorusu görüldüğü için komut satırı ajanının da önce duracağı varsayılabilir. Headless çağrılar aynı etkileşimi sunmayabilir ve farklı yapılandırma kaynaklarını yükleyebilir. Bu nedenle otomatik inceleme betiği yazarken kullanılan kipin belgelediği davranışı okumak gerekir. Bir arayüzdeki ret başka süreç için kanıt değildir.

**Engel giderilirken sınır kaldırılır.** Ajan görev çalışmadığında güven özelliğini tamamen kapatmayı önerebilir. Böylece beklenen görev açılır ama sonraki yabancı depolar da aynı seçimin etkisine girer. Daha dar çözüm, incelenmiş proje ve gereken işlev için karar vermektir. Bu açıklamalar olası üretim mekanizmalarıdır, AI tarafından yazılan ayarlardaki hata sıklığını ölçen veri değildir.

## Etki

Depodan gelen komut, geliştirici sürecinin erişebildiği dosya ve servislerle işlem yapabilir. Kullanıcı uygulamayı çalıştırmadığını düşünürken başka bir bileşen betik başlatmış olabilir. Sırların bulunduğu makinede etki büyür. Gerçek sonuç, istemcinin uyguladığı sınırlar ve başlatılan programın yetkileriyle belirlenir.

Yalnız ayar dosyasını okumak bu sonucu doğurmaz. Güvenli inceleme, dosyaları çalıştırmadan anlamayı mümkün kılar. Yanlış pozitifleri önlemek için çalıştırma koşulunu somutlaştır. Görev mevcut mu, otomatik açılışa bağlı mı, çalışma alanı güvenilir mi ve istemci o ayarı uyguluyor mu? Bu zincirin eksik halkası raporda açık kalmalıdır.

## Nasıl anlarsın

Önce deponun editör ayarlarını, görevlerini, ajan hook'larını ve yerel MCP komutlarını metin olarak oku. İnceleme için paketi kurman veya önerilen hazırlık betiğini çalıştırman gerekmez. `runOn` değeri `folderOpen` olan görevleri ve çalıştırılabilir dosya yolu tanımlayan ayarları belirle. Bunların başlattığı dosyaları da yalnız okuyarak izle.

Sonra kullanıcı ayarını ve güvenilmiş klasör listesini kontrol et. Depo bir üst klasörden güven devralıyor olabilir. Örnek dosya kullanıcı ayarları içindir, güven kararını deponun kendi ayarına bırakmaz. Statik kontrol yalnız bu örneği doğrular. Gerçek istemci testi gerekiyorsa sırsız geçici ortam ve zararsız yerel işaret kullan, kendi çalışma makinenin sırlarını deneye katma.

## Nasıl düzeltirsin

1. **İlk açılışı sınırla.** Tanınmayan depoyu kısıtlı kipte incele. Güven özelliğini kullanıcı düzeyinde açık tut. Dış dosyaları ayrı kısıtlı pencerede açma seçimi mevcut güvenli çalışma alanına yanlışlıkla katılmalarını azaltır. Metin okuma ve düzenleme ihtiyacını koru.
2. **Geniş güveni kaldır.** Bütün indirmeleri kapsayan üst klasör yerine gerçekten incelenmiş proje için karar ver. Açılış görevlerini varsayılan kapalı tut. Kullanıcının daha önce verdiği güveni ve göreve özel otomatik çalıştırma kararını birlikte gözden geçir.
3. **Ajan yüklemesini ayrıca incele.** [Claude Code izin belgesindeki](https://code.claude.com/docs/en/permissions) proje güveni ile headless çağrı ayrımını kontrol et. Proje ayarları, hook ve MCP yüklenmesini kullandığın istemci ve kip için sınırla. Bir ürünün seçeneğini başka ürüne aynı anlamdaymış gibi kopyalama.
4. **Eklenti ve ortamı değerlendir.** Workspace Trust kötü niyetli eklentiyi genel olarak durduran işletim sistemi sandbox'ı değildir. Eklenti kaynağı ve sürümü ayrıca incelenir. Şüpheli depoyu gerçekten çalıştırman gerekiyorsa sır taşımayan ve erişimi sınırlandırılmış ortam kullan. Ayar testinin bu yalıtımı kanıtladığını söyleme.

## Bir daha olmasın

Depo inceleme akışına çalıştırılabilir yapılandırma kontrolünü ekle. Yeni görev ve hook değişikliklerini kaynak kod kadar dikkatle gözden geçir.

## Sınır

Bu madde depo açılışı ve proje yapılandırmasının etkinleşmesiyle oluşan çalıştırmayı kapsar. Bilinçli paket kurulumu ve LLM'in metinsel talimata uyması ayrı mekanizmalardır. İncelenmiş bir projede gerekli otomatik görev kullanmak tek başına açık sayılmaz. Ayarlar gerçek istemci sürümüne ve etkin kullanıcı politikasına göre doğrulanmalıdır.

## Düzeltme kodları

### Her yığın: VS Code kullanıcı güven ayarları

Önce:

```json
// VS Code kullanıcı settings.json, açıklama amaçlı. Depo ayarı değildir.
{
  // Yeni depolar için güven ayrımı kapalıdır.
  "security.workspace.trust.enabled": false,
  // Yabancı dosya mevcut güvenli pencereye katılır.
  "security.workspace.trust.untrustedFiles": "open",
  // Boş pencere de güvenilir kabul edilir.
  "security.workspace.trust.emptyWindow": true,
  // Başlangıçta güven sorusu gösterilmez.
  "security.workspace.trust.startupPrompt": "never",
  // Güvenilir sayılan klasörlerde açılış görevi otomatik çalışır.
  "task.allowAutomaticTasks": "on",
  // İlgisiz editör tercihi korunacak.
  "editor.tabSize": 2
}
```

Sonra:

```json
// VS Code kullanıcı settings.json, açıklama amaçlı. Depo ayarı değildir.
{
  // Güvenilmiş üst klasör listesi ayrıca incelenmelidir.
  "security.workspace.trust.enabled": true,
  // Yabancı dosya ayrı kısıtlı pencerede açılır.
  "security.workspace.trust.untrustedFiles": "newWindow",
  // Boş pencere varsayılan olarak güvenilir sayılmaz.
  "security.workspace.trust.emptyWindow": false,
  // Her yeni klasör için ilk güven kararı görünür olur.
  "security.workspace.trust.startupPrompt": "once",
  // İncelenmiş görevler gerektiğinde elle başlatılabilir.
  "task.allowAutomaticTasks": "off",
  // İlgisiz editör tercihi aynı kalır.
  "editor.tabSize": 2
}
```

Düzeltmeyi kanıtlayan test:

```json
// denetim/editor-guven.test.mjs, açıklama amaçlı. Editör veya görev çalışmaz.
import test from 'node:test';
import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';
import ts from 'typescript';
const text = readFileSync(new URL(process.env.ORNEK_DOSYA), 'utf8');
test('kullanıcı ayarları yabancı depoya otomatik güven vermez', () => {
  const parsed = ts.parseConfigFileTextToJson('settings.json', text);
  assert.equal(parsed.error, undefined);
  const settings = parsed.config;
  assert.equal(settings['security.workspace.trust.enabled'], true);
  assert.equal(settings['security.workspace.trust.untrustedFiles'], 'newWindow');
  assert.equal(settings['security.workspace.trust.emptyWindow'], false);
  assert.equal(settings['task.allowAutomaticTasks'], 'off');
  assert.equal(settings['editor.tabSize'], 2);
});
```

## Ajan kuralı (AGENTS.md)

```md
## Depo açılınca yabancı kod çalışıyor (vibecheck VC-075)
- Tanınmayan depo önce çalıştırma yolları kapalı biçimde incelenir.
- İndirilen depoların tamamını kapsayan üst klasöre otomatik güven verilmez.
- Workspace Trust kullanıcı düzeyinde açık tutulur.
- Açılış görevleri, hook ve yerel MCP komutları çalışmadan önce incelenir.
- Headless ajan çağrısının güven davranışı etkileşimli editörle aynı varsayılmaz.
- Güven ayarları işletim sistemi yalıtımının yerine geçmez.
```

## Kaynaklar

1. [Workspace Trust](https://code.visualstudio.com/docs/editing/workspaces/workspace-trust), Microsoft
2. [Integrate with External Tools via Tasks](https://code.visualstudio.com/docs/debugtest/tasks), Microsoft
3. [Agent Security](https://cursor.com/docs/agent/security), Cursor
4. [Configure permissions](https://code.claude.com/docs/en/permissions), Anthropic
5. [CWE-829 Inclusion of Functionality from Untrusted Control Sphere](https://cwe.mitre.org/data/definitions/829.html), MITRE

---

vibecheck · Komünite editörlüğü. Metin CC BY 4.0, prompt ve kural parçaları MIT-0. Kaynak: https://vibecheck.komunite.com.tr/madde/guvenilmeyen-deponun-gorev-ve-ayarlari-otomatik-calisiyor
