NETSDK1238. Текущий пакет SDK .NET имеет известные уязвимости

Это предупреждение указывает, что пакет SDK .NET, используемый для сборки проекта, содержит одну или несколько известных распространенных уязвимостей и уязвимостей (CVEs). Полное предупреждение аналогично следующему примеру:

NETSDK1238: текущий пакет SDK .NET (<version>) имеет известные уязвимости (список <CVE>). Обновите до версии <версии>. См. https://dotnet.microsoft.com/download

Чтобы устранить предупреждение, установите исправленный пакет SDK .NET из https://dotnet.microsoft.com/download и обновите global.json (при наличии), чтобы выбрать новую версию.

Как работает проверка

Проверка является необязательной и запускается, только если свойству MSBuild CheckSdkVulnerabilities присвоено значение true:

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

Вы также можете передать /p:CheckSdkVulnerabilities=true команде cli .NET, например dotnet build.

По умолчанию .NET CLI обновляет локальный кэш метаданных о выпусках SDK в фоновом режиме не чаще одного раза в 24 часа по адресу ~/.dotnet/sdk-vulnerability-cache/. Чтобы изменить этот интервал, задайте DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS. Проверка MSBuild считывает только этот кэш; Он не выполняет сетевые вызовы во время сборки. На компьютерах, у которых никогда не было сетевого доступа, предупреждение не создается.

Подавьте предупреждение

Чтобы отключить предупреждение без обновления пакета SDK, выполните указанные ниже действия.

  • Добавить NETSDK1238 в NoWarn:

    <NoWarn>$(NoWarn);NETSDK1238</NoWarn>
    
  • CheckSdkVulnerabilities Установите значение false (по умолчанию), чтобы отключить NETSDK1238, NETSDK1239 и NETSDK1240.

  • Установите для переменной среды DOTNET_SDK_VULNERABILITY_CHECK_DISABLE значение true, чтобы отключить как обновление кэша, так и проверку при сборке.

См. также