Aracılığıyla paylaş


Kök klasördeki araç bildirimleri

.NET artık ortam değişkeni aracılığıyla DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT geçersiz kılınmadığı sürece Windows'un kök klasöründe yerel araç bildirim dosyalarını aramaz. Bu değişiklik Linux veya macOS'i etkilemez.

Önceki davranış

Daha önce .NET SDK yerel araçları, bir araç bildirimi ararken tüm platformlardaki kök klasörü denetlemişti. Arama, geçerli dizinden dizin ağacından kök klasöre kadar bir bildirim bulana kadar devam etti. .NET, her düzeyde bir .config alt klasöründe dotnet-tools.json adlı araç bildirimini arar. Bir Windows sisteminde, başka bir araç bildirimi bulunamazsa, SDK sonunda C:\.config\dotnet-tools.json'da bir araç bildirimi aradı.

Yeni davranış

.NET artık, ortam değişkeni aracılığıyla geçersiz kılınmadığı sürece Windows'da varsayılan olarak geçerli dizin ağacının DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT kök klasöründe arama yapmaz. DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT varsayılan olarak olarak ayarlanır false .

Sürüm kullanıma sunulmuştur

  • .NET SDK 7.0.3xx
  • .NET SDK 7.0.1xx
  • .NET SDK 6.0.4xx
  • .NET SDK 6.0.3xx
  • .NET SDK 6.0.1xx
  • .NET SDK 3.1.4xx

Hataya neden olan değişikliğin türü

Bu değişiklik davranışsal bir değişikliktir.

Değişiklik nedeni

Bu değişiklik bir güvenlik endişesini gidermek için yapılmıştır. Tüm kullanıcılar Windows'ta C:\ dizininde dosya ve klasör oluşturabildiğinden, düşük ayrıcalıklı saldırganlar C:\.config\dotnet-tools.json dosyasını ele geçirebilir. Yönetici bir dotnet araç komutu çalıştırdığında, araç dosyadan kötü amaçlı yapılandırma bilgilerini okuyabilir ve kötü amaçlı araçları indirip çalıştırabilir.

Yeni davranışı devre dışı bırakmak için ortam değişkenini DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT veya 1olarak true ayarlayın.

Ayrıca bkz.