Partilhar via


Avisos NuGet NU1901, NU1902, NU1903, NU1904

aviso NU1902: O pacote 'NuGet.Protocol' 5.11.2 tem uma vulnerabilidade conhecida de gravidade moderada, https://github.com/advisories/GHSA-g3q9-xf95-8hp5

O código de aviso muda dependendo do nível de gravidade da vulnerabilidade conhecida:

Código de aviso Severity
NU1901 low
NU1902 moderado
NU1903 high
NU1904 crítico

Issue

Um pacote restaurado para o seu projeto tem uma vulnerabilidade conhecida.

Para obter mais informações, consulte a documentação sobre pacotes de auditoria.

Solution

Temos documentação sobre a atualização de pacotes vulneráveis que apresenta mais detalhes sobre nossas ações recomendadas quando seu projeto usa um pacote com uma vulnerabilidade conhecida e ferramentas que podem ajudar.

A atualização para uma versão mais recente do pacote provavelmente resolverá o aviso. Se o seu projeto não fizer referência ao pacote diretamente (é um pacote transitivo), dotnet nuget why pode ser usado para entender qual pacote fez com que ele fosse incluído no seu projeto. Você pode verificar a URL fornecida pelo comunicado de vulnerabilidade para ver quais versões do pacote foram corrigidas ou verificar a(s) fonte(s) do pacote configurada(s) para ver quais versões do pacote estão disponíveis. A interface do usuário do gerenciador de pacotes do Visual Studio pode mostrar quais versões de pacote são afetadas e quais não têm vulnerabilidades conhecidas.

Se esses avisos estiverem fazendo com que a restauração falhe porque você está usando TreatWarningsAsErrorso , você pode adicionar <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> para permitir que esses códigos permaneçam como avisos.

Se você não deseja ser notificado sobre vulnerabilidades menos graves do que um nível com o qual você está confortável, você pode editar o arquivo de projeto e adicionar uma propriedade NuGetAuditLevelMSBuild , com o valor definido como low, moderate, high, ou critical. Por exemplo, <NuGetAuditLevel>high</NuGetAuditLevel>.

Se você quiser suprimir um aviso específico, adicione um item MSBuild NuGetAuditSuppress . Por exemplo, <NuGetAuditSuppress Include="https://github.com/advisories/GHSA-g3q9-xf95-8hp5" />. NuGetAuditSuppress está disponível no VS 17.11 e .NET 8.0.400 SDK para projetos que usam PackageReferenceo , e no VS 17.12 para projetos que usam packages.configo .

Se você não quiser que o NuGet verifique se há pacotes com vulnerabilidades conhecidas durante a restauração, adicione <NuGetAudit>false</NuGetAudit> dentro de um <PropertyGroup> em seu arquivo de projeto ou um Directory.Build.props arquivo. Se você quiser executar o NuGet Audit em máquinas de desenvolvedor, mas desativá-lo em pipelines de CI, poderá aproveitar as variáveis de ambiente de importação do MSBuild e criar uma variável de ambiente NuGetAudit definida como false em sua definição de pipeline.

Para projetos destinados ao .NET 10 framework, a configuração padrão para NuGetAuditMode é all. Isso significa que o NuGet relatará pacotes transitivos com vulnerabilidades conhecidas para todas as estruturas do projeto. O valor pode ser explicitamente definido para direct reverter para o padrão do .NET 9.