NETSDK1238: O SDK atual do .NET tem vulnerabilidades conhecidas

Este aviso indica que o SDK .NET usado para construir o seu projeto tem uma ou mais Vulnerabilidades e Exposições Comuns (CVEs) conhecidas. A mensagem de aviso completa é semelhante ao seguinte exemplo:

NETSDK1238: O SDK atual de .NET (<versão>) tem vulnerabilidades conhecidas (<CVE list>). Atualize para a versão <versão>. Veja https://dotnet.microsoft.com/download

Para resolver o aviso, instale um SDK de .NET atualizado a partir de https://dotnet.microsoft.com/download e atualize o seu global.json (se presente) para selecionar a nova versão.

Como funciona a verificação

A verificação é opt-in e só é executada quando a propriedade CheckSdkVulnerabilities MSBuild está definida para true:

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

Também pode passar /p:CheckSdkVulnerabilities=true para um comando .NET CLI, como dotnet build.

Por defeito, a CLI do .NET atualiza, em segundo plano, uma cache local de metadados de lançamento de versões do SDK, no máximo, uma vez a cada 24 horas em ~/.dotnet/sdk-vulnerability-cache/. Para alterar esse intervalo, defina DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS. A verificação MSBuild lê apenas essa cache; Não faz chamadas de rede durante a construção. Em máquinas que nunca tiveram acesso à rede, não é emitido qualquer aviso.

Suprimir o aviso

Para suprimir o aviso sem atualizar o SDK:

  • Adicionar NETSDK1238 a:NoWarn

    <NoWarn>$(NoWarn);NETSDK1238</NoWarn>
    
  • Defina CheckSdkVulnerabilities como false (predefinido) para desativar NETSDK1238, NETSDK1239 e NETSDK1240.

  • Defina a variável de ambiente DOTNET_SDK_VULNERABILITY_CHECK_DISABLE como true para desativar tanto a atualização da cache como a verificação em tempo de compilação.

Consulte também