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.
Önerilen eylem
Yeni davranışı devre dışı bırakmak için ortam değişkenini DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
veya 1
olarak true
ayarlayın.