NETSDK1238: Geçerli .NET SDK'sının bilinen güvenlik açıkları var

Bu uyarı, projenizi oluşturmak için kullanılan .NET SDK'sının bir veya daha fazla bilinen Ortak Güvenlik Açıkları ve Açığa Çıkarma (CVE) olduğunu gösterir. Tam uyarı iletisi aşağıdaki örneğe benzer:

NETSDK1238: Geçerli .NET SDK'sı (<version>) bilinen güvenlik açıklarına sahiptir (<CVE listesi>). <version> sürümüne güncelleyin. Bkz. https://dotnet.microsoft.com/download

Uyarıyı çözmek için https://dotnet.microsoft.com/download'dan düzeltme eki uygulanmış bir .NET SDK yükleyin ve yeni sürümü seçmek için global.json (varsa) güncelleştirin.

Denetim nasıl çalışır

Denetim isteğe bağlıdır ve yalnızca MSBuild özelliği CheckSdkVulnerabilities, true olarak ayarlandığında çalışır:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <CheckSdkVulnerabilities>true</CheckSdkVulnerabilities>
  </PropertyGroup>
</Project>

/p:CheckSdkVulnerabilities=true dotnet build gibi bir .NET CLI komutuna da geçirebilirsiniz.

varsayılan olarak, .NET CLI arka planda SDK yayın meta verilerinin yerel önbelleğini ~/.dotnet/sdk-vulnerability-cache/ altında en fazla 24 saatte bir yeniler. Bu aralığı değiştirmek için değerini ayarlayın DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS. MSBuild denetimi yalnızca bu önbelleği okur; derleme sırasında ağ çağrıları yapmaz. Hiçbir zaman ağ erişimi olmayan makinelerde uyarı uygulanmaz.

Uyarıyı gizleme

SDK'yi güncelleştirmeden uyarıyı bastırmak için:

  • NETSDK1238 öğesini NoWarn öğesine ekleyin:

    <NoWarn>$(NoWarn);NETSDK1238</NoWarn>
    
  • CheckSdkVulnerabilities öğesini, NETSDK1238, NETSDK1239 ve NETSDK1240'ı devre dışı bırakmak için false (varsayılan) olarak ayarlayın.

  • Hem önbellek yenilemesini DOTNET_SDK_VULNERABILITY_CHECK_DISABLE hem de derleme zamanı denetimini devre dışı bırakmak için ortam değişkenini true olarak ayarlayın.

Ayrıca bakınız