警告 NU1902:包“NuGet.Protocol”5.11.2 具有已知中等严重性漏洞 https://github.com/advisories/GHSA-g3q9-xf95-8hp5
此警告代码会根据已知的漏洞严重性级别进行更改:
| Warning Code | Severity |
|---|---|
| NU1901 | low |
| NU1902 | moderate |
| NU1903 | high |
| NU1904 | 严重 |
Issue
为项目还原的包存在已知漏洞。
有关详细信息,请参阅有关包审计的文档。
Solution
当项目使用具有已知漏洞的包时,请参阅博客文章,其中详细介绍了建议的操作以及可提供帮助的工具。
升级到较新版本的包可能会解决该警告。
如果项目未直接引用包(其为可传递包),则可使用 dotnet nuget why 了解导致哪个包将自身包含在项目之中。
可检查漏洞公告提供的 URL,以查看包的已修复版本,或是检查已配置的包源以查看包的可用版本。
Visual Studio 的包管理器 UI 可以显示哪些包版本受到影响,哪些版本没有已知的漏洞。
如果这些警告因你使用的是 TreatWarningsAsErrors 而导致还原失败,则可以添加 <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> 以便这些代码始终为警告。
如果不希望收到比你熟悉的严重性级别更低的漏洞的相关通知,则可编辑项目文件并添加 MSBuild 属性 NuGetAuditLevel,并将值设为 low、moderate、high 或 critical。
例如,<NuGetAuditLevel>high</NuGetAuditLevel>。
若要禁止显示特定公告,请添加 MSBuild NuGetAuditSuppress 项。
例如,<NuGetAuditSuppress Include="https://github.com/advisories/GHSA-g3q9-xf95-8hp5" />。
NuGetAuditSuppress 可用于packages.config 开始可用。
如果不希望 NuGet 在还原期间检查具有已知漏洞的包,请在项目文件或 <PropertyGroup>的 Directory.Build.props 中添加 。
如果要在开发人员计算机上运行 NuGet Audit,但需要在 CI 管道上禁用它,则可以利用 MSBuild 导入环境变量,然后在管道定义中创建 NuGetAudit 环境变量,将其设置为 false。
对于面向 .NET 10 框架的项目,默认设置 NuGetAuditMode 为 all。
这意味着 NuGet 将报告项目中所有框架具有已知漏洞的可传递包。
可以将该值显式设置为 direct 恢复为 .NET 9 的默认值。