NETSDK1238: Aktuální sada .NET SDK obsahuje známá ohrožení zabezpečení

Toto upozornění označuje, že sada SDK .NET použitá k sestavení vašeho projektu obsahuje jednu nebo více běžně známých zranitelností a ohrožení (CVE). Úplná zpráva s upozorněním je podobná následujícímu příkladu:

NETSDK1238: Aktuální sada SDK .NET (<version>) obsahuje známá ohrožení zabezpečení (seznam <CVE>). Aktualizujte na verzi <verzi>. Viz https://dotnet.microsoft.com/download.

Pokud chcete upozornění vyřešit, nainstalujte opravenou sadu SDK .NET ze sady https://dotnet.microsoft.com/download a aktualizujte global.json (pokud je k dispozici) a vyberte novou verzi.

Jak kontrola funguje

Tato kontrola je volitelná a spustí se pouze tehdy, když je vlastnost MSBuild CheckSdkVulnerabilities nastavena na true:

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

Můžete také předat /p:CheckSdkVulnerabilities=true do příkazu rozhraní příkazového řádku .NET, například dotnet build.

Rozhraní příkazového řádku .NET ve výchozím nastavení aktualizuje místní mezipaměť metadat vydaných verzí sady SDK na pozadí maximálně jednou za 24 hodin pod ~/.dotnet/sdk-vulnerability-cache/. Pokud chcete tento interval změnit, nastavte DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS. Nástroj MSBuild kontroluje pouze čtení této mezipaměti; během sestavování neprovádí síťová volání. Na počítačích, které nikdy neměly přístup k síti, se nevygeneruje žádné upozornění.

Potlačení upozornění

Potlačení upozornění bez aktualizace sady SDK:

  • Přidat NETSDK1238 k NoWarn:

    <NoWarn>$(NoWarn);NETSDK1238</NoWarn>
    
  • Nastavte CheckSdkVulnerabilities na false (výchozí) a vypněte NETSDK1238, NETSDK1239 a NETSDK1240.

  • Nastavte proměnnou prostředí DOTNET_SDK_VULNERABILITY_CHECK_DISABLE na hodnotu true, čímž zakážete jak aktualizaci mezipaměti, tak kontrolu při sestavení.

Viz také