NETSDK1238: SDK .NET saat ini memiliki kerentanan yang diketahui

Peringatan ini menunjukkan bahwa SDK .NET yang digunakan untuk membangun proyek Anda memiliki satu atau beberapa Kerentanan dan Paparan Umum (CVE) yang diketahui. Pesan peringatan lengkap mirip dengan contoh berikut:

NETSDK1238: SDK .NET saat ini (<version>) memiliki kerentanan yang diketahui (daftar <CVE>). Perbarui ke versi <version>. Lihat https://dotnet.microsoft.com/download

Untuk mengatasi peringatan, instal SDK .NET yang di-patch dari https://dotnet.microsoft.com/download dan perbarui global.json Anda (jika ada) untuk memilih versi baru.

Cara kerja pemeriksaan

Pemeriksaan ini bersifat opt-in dan hanya dijalankan ketika properti MSBuild CheckSdkVulnerabilities diatur ke true:

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

Anda juga dapat meneruskan /p:CheckSdkVulnerabilities=true ke perintah CLI .NET, seperti dotnet build.

Secara bawaan, CLI .NET menyegarkan cache lokal metadata rilis SDK di latar belakang paling sering sekali setiap 24 jam di ~/.dotnet/sdk-vulnerability-cache/. Untuk mengubah interval tersebut, atur DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS. Pemeriksaan MSBuild hanya membaca cache tersebut; tidak melakukan panggilan jaringan selama build. Pada komputer yang belum pernah memiliki akses jaringan, tidak ada peringatan yang dipancarkan.

Menyembunyikan peringatan

Untuk menekan peringatan tanpa memperbarui SDK:

  • Tambahkan NETSDK1238 ke NoWarn:

    <NoWarn>$(NoWarn);NETSDK1238</NoWarn>
    
  • Atur CheckSdkVulnerabilities ke false (default) untuk menonaktifkan NETSDK1238, NETSDK1239, dan NETSDK1240.

  • Atur DOTNET_SDK_VULNERABILITY_CHECK_DISABLE variabel lingkungan ke true untuk menonaktifkan refresh cache dan pemeriksaan build-time.

Baca juga