我有一个解决方案,由.NET Standard 2.0和.NET Core 2.1.304项目组成。构建此解决方案时,使用了旧的易受攻击版本的
我可能错过了总体解决方案或其中一个项目的配置,导致使用旧版本,但我所知道要检查的所有内容都正确无误:
我已确保所有 NuGet 包都是最新的。但是,是否有可能我的某个 NuGet 包引用导致回退到旧版本?我应该检查哪些其他配置?
有趣的是,当我构建一个不同但类似配置的解决方案(据我所知)时,该解决方案会使用较新的、非易受攻击的版本进行构建。
System.ServiceModel.Primitives
和System.Private.ServiceModel
(CVE-2018-0786)。我可能错过了总体解决方案或其中一个项目的配置,导致使用旧版本,但我所知道要检查的所有内容都正确无误:
Global.json
{
"sdk": {
"version": "2.1.302"
}
}
.NET Core项目文件示例
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<Configurations>Debug;Dev;Qual;Release</Configurations>
<LangVersion>7.1</LangVersion>
</PropertyGroup>
示例 .NET Standard 项目文件
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Configurations>Debug;Dev;Qual;Release</Configurations>
</PropertyGroup>
我已确保所有 NuGet 包都是最新的。但是,是否有可能我的某个 NuGet 包引用导致回退到旧版本?我应该检查哪些其他配置?
有趣的是,当我构建一个不同但类似配置的解决方案(据我所知)时,该解决方案会使用较新的、非易受攻击的版本进行构建。
System.ServiceModel.Primitives
。除了 dotnet-outdated 这个优秀的工具可以确定哪个过时的引用被添加到了你的解决方案中,还有一个非常有用的工具叫做 dotnet-depends。不幸的是,它目前只能按项目而不是按解决方案来使用,但仍然非常有用。 - ahsteele