NETSDK1238: l'SDK di .NET corrente presenta vulnerabilità note

Questo avviso indica che l'SDK di .NET usato per compilare il progetto ha una o più vulnerabilità ed esposizioni comuni note( CVE). Il messaggio di avviso completo è simile all'esempio seguente:

NETSDK1238: l'SDK di .NET corrente (<version>) presenta vulnerabilità note (<CVE list>). Aggiorna alla versione <versione>. Fare riferimento a https://dotnet.microsoft.com/download

Per risolvere l'avviso, installare un SDK .NET con patch da https://dotnet.microsoft.com/download e aggiornare il global.json (se presente) per selezionare la nuova versione.

Come funziona la verifica

Il controllo è facoltativo e viene eseguito solo quando la proprietà MSBuild CheckSdkVulnerabilities è impostata su true:

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

È anche possibile passare /p:CheckSdkVulnerabilities=true a un comando dell'interfaccia della riga di comando di .NET, ad esempio dotnet build.

Per impostazione predefinita, la CLI di .NET aggiorna in background una cache locale dei metadati delle versioni dell'SDK al massimo una volta ogni 24 ore in ~/.dotnet/sdk-vulnerability-cache/. Per modificare tale intervallo, impostare DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS. Il controllo MSBuild legge solo la cache; non effettua chiamate di rete durante la compilazione. Nei computer che non hanno mai avuto accesso alla rete, non viene generato alcun avviso.

Eliminare l'avviso

Per eliminare l'avviso senza aggiornare l'SDK:

  • Aggiungi NETSDK1238 a NoWarn:

    <NoWarn>$(NoWarn);NETSDK1238</NoWarn>
    
  • Impostare CheckSdkVulnerabilities su false (valore predefinito) per disattivare NETSDK1238, NETSDK1239 e NETSDK1240.

  • Impostare la DOTNET_SDK_VULNERABILITY_CHECK_DISABLE variabile di ambiente su true per disabilitare sia l'aggiornamento della cache che il controllo in fase di compilazione.

Vedere anche