NuGet 警告 NU1901、NU1902、NU1903、NU1904

warning NU1902: Package 'NuGet.Protocol' 5.11.2 has a known moderate severity vulnerability, https://github.com/advisories/GHSA-g3q9-xf95-8hp5

此警告代码会根据已知的漏洞严重性级别进行更改:

警告代码 Severity
NU1901 low
NU1902 中等
NU1903 high
NU1904 严重

问题

为项目还原的包存在已知漏洞。

有关详细信息,请参阅有关包审计的文档

解决方案

升级到较新版本的包可能会解决该警告。 可检查漏洞公告提供的 URL,以查看包的已修复版本,或是检查已配置的包源以查看包的可用版本。 Visual Studio 的包管理器 UI 可以显示哪些包版本受到影响,哪些版本没有已知的漏洞。

如果不希望收到比你熟悉的严重性级别更低的漏洞的相关通知,则可编辑项目文件并添加 MSBuild 属性 NuGetAuditLevel,并将值设为 lowmoderatehighcritical。 例如 <NuGetAuditLevel>high</NuGetAuditLevel>

如果这些警告因你使用的是 TreatWarningsAsErrors 而导致还原失败,则可以添加 <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> 以便这些代码始终为警告。

如果不希望 NuGet 在还原期间检查具有已知漏洞的包,请在项目文件或 Directory.Build.props 文件<PropertyGroup> 中添加 <NuGetAudit>false</NuGetAudit>

注意

NuGetAudit 的初始版本不提供不显示特定公告 (URL) 的方法。 这是一项我们计划基于其他改进的优先顺序来添加的功能。

作为缓解措施,可向 PackageReference 声明添加相应的 NoWarn。 例如 <PackageReference Include="Contoso.Library" Version="1.0.0" NoWarn="NU1901" />。 但请注意,此操作会阻止向你报告相同严重性的新漏洞。