Upozornění NuGet NU1901, NU1902, NU1903, NU1904
upozornění NU1902: Balíček NuGet.Protocol 5.11.2 má známou střední závažnost ohrožení zabezpečení, https://github.com/advisories/GHSA-g3q9-xf95-8hp5
Kód upozornění se změní v závislosti na známé úrovni závažnosti ohrožení zabezpečení:
Kód upozornění | Závažnost |
---|---|
NU1901 | low |
NU1902 | moderovat |
NU1903 | vysoko |
NU1904 | critical |
Problém
Balíček obnovený pro váš projekt má známou chybu zabezpečení.
Další informace najdete v dokumentaci k balíčkům auditování.
Řešení
Máme blogový příspěvek s další diskuzí o našich doporučených akcích, když váš projekt používá balíček se známým ohrožením zabezpečení a nástroji, které vám můžou pomoct.
Upgrade na novější verzi balíčku pravděpodobně vyřeší upozornění.
Pokud váš projekt neodkazuje přímo na balíček (jedná se o tranzitivní balíček), dotnet nuget why
můžete použít k pochopení, který balíček způsobil jeho zahrnutí do projektu.
Můžete zkontrolovat adresu URL poskytnutou poradcem pro ohrožení zabezpečení a zjistit, které verze balíčku byly opraveny, nebo zkontrolovat nakonfigurované zdroje balíčků a zjistit, které verze balíčku jsou k dispozici.
Uživatelské rozhraní správce balíčků sady Visual Studio může zobrazit, které verze balíčků jsou ovlivněné a které nemají známá ohrožení zabezpečení.
Pokud tato upozornění způsobují selhání obnovení, protože používáte TreatWarningsAsErrors
, můžete přidat <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>
, aby tyto kódy zůstaly jako upozornění.
Pokud nechcete dostávat oznámení o chybách zabezpečení, která jsou méně závažná než úroveň, kterou vám vyhovuje, můžete upravit soubor projektu a přidat vlastnost NuGetAuditLevel
NÁSTROJE MSBuild s hodnotou nastavenou na low
, moderate
, high
nebo critical
.
Například <NuGetAuditLevel>high</NuGetAuditLevel>
.
Pokud chcete potlačit konkrétní rady, přidejte položku NuGetAuditSuppress nástroje MSBuild.
Příklad: <NuGetAuditSuppress Include="https://github.com/advisories/GHSA-g3q9-xf95-8hp5" />
.
NuGetAuditSuppress
je k dispozici v sadě SDK sady VS 17.11 a .NET 8.0.400 pro projekty používající PackageReference
a ze sady VS 17.12 pro projekty používající packages.config
.
Pokud nechcete, aby NuGet během obnovení zkontroloval balíčky se známými ohroženími zabezpečení, přidejte <NuGetAudit>false</NuGetAudit>
do <PropertyGroup>
souboru projektu nebo Directory.Build.props
do souboru.
Pokud chcete spustit Audit NuGetu na vývojářských počítačích, ale zakázat ho v kanálech CI, můžete využít výhod importu proměnných prostředí nástroje MSBuild a vytvořit proměnnou prostředí NuGetAudit nastavenou na false
definici kanálu.
V sadě NuGet 6.12 (Visual Studio/MSBuild 17.12 a .NET 9.0.100 SDK) nuGet změnil výchozí hodnotu na NuGetAuditMode
all
, což znamená, že se hlásí přenášené balíčky se známými ohroženími zabezpečení.
Hodnotu je možné explicitně nastavit tak, aby direct
se vrátila zpět na výchozí hodnotu .NET 8. Alternativně lze vlastnost SdkAnalysisLevel
nastavit tak, aby 8.0.400
dočasně zakázala všechna nová upozornění a chyby zavedené v novějších verzích sady SDK. Konkrétně v tomto případě je výchozí hodnota NuGetAuditMode
změněna zpět na direct
.