Dela via


NuGet-varningar NU1901, NU1902, NU1903, NU1904

varning NU1902: Paketet "NuGet.Protocol" 5.11.2 har en känd måttlig allvarlighetsgrad, https://github.com/advisories/GHSA-g3q9-xf95-8hp5

Varningskoden ändras beroende på den kända allvarlighetsgraden för säkerhetsrisker:

Warning Code Severity
NU1901 low
NU1902 moderate
NU1903 high
NU1904 critical

Issue

Ett paket som har återställts för projektet har en känd säkerhetsrisk.

Mer information finns i dokumentationen om granskningspaket.

Solution

Vi har ett blogginlägg med mer information om våra rekommenderade åtgärder när ditt projekt använder ett paket med en känd säkerhetsrisk och verktyg som kan hjälpa dig.

Det är troligt att du kan lösa varningen genom att uppgradera till en nyare version av paketet. Om projektet inte refererar direkt till paketet (det är ett transitivt paket) dotnet nuget why kan du använda det för att förstå vilket paket som gjorde att det ingick i projektet. Du kan kontrollera url:en som tillhandahålls av sårbarhetsrekommendatorn för att se vilka versioner av paketet som har åtgärdats eller kontrollera dina konfigurerade paketkällor för att se vilka versioner av paketet som är tillgängliga. Visual Studios pakethanterargränssnitt kan visa vilka paketversioner som påverkas och vilka som inte har kända säkerhetsrisker.

Om dessa varningar orsakar att återställningen misslyckas eftersom du använder TreatWarningsAsErrorskan du lägga till <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> för att tillåta att dessa koder förblir som varningar.

Om du inte vill bli meddelad om säkerhetsrisker som är mindre allvarliga än en nivå som du är bekväm med kan du redigera projektfilen och lägga till en MSBuild-egenskap NuGetAuditLevel, med värdet inställt på low, moderate, higheller critical. Till exempel <NuGetAuditLevel>high</NuGetAuditLevel>.

Om du vill utelämna en specifik rekommendation lägger du till ett MSBuild NuGetAuditSuppress-objekt . Till exempel <NuGetAuditSuppress Include="https://github.com/advisories/GHSA-g3q9-xf95-8hp5" />. NuGetAuditSuppress är tillgängligt från VS 17.11 och .NET 8.0.400 SDK för projekt som använder PackageReference, och från VS 17.12 för projekt som använder packages.config.

Om du inte vill att NuGet ska söka efter paket med kända säkerhetsrisker under återställningen lägger du till <NuGetAudit>false</NuGetAudit> i en <PropertyGroup> i projektfilen eller en Directory.Build.props fil. Om du vill köra NuGet-granskning på utvecklardatorer, men inaktivera den på CI-pipelines, kan du dra nytta av MSBuild-import av miljövariabler och skapa en NuGetAudit-miljövariabel som anges i false pipelinedefinitionen.

För projekt som riktar sig till .NET 10-ramverket är allstandardinställningen för NuGetAuditMode . Det innebär att NuGet rapporterar om transitiva paket med kända sårbarheter för alla ramverk i projektet. Värdet kan uttryckligen anges till direct för att återgå till .NET 9:s standardvärde.