.NET Framework 4.7.2升级RestSharp后高风险CVE问题未解决求助
解决.NET Framework 4.7.2下RestSharp升级后CVE-2021-24112/CVE-2021-26701的问题
问题核心澄清
扫描结果里标注的System.Text.Encoding是误报,这两个CVE实际影响的是System.Text.Encodings.Web包,部分扫描工具会出现包名识别混淆的情况。
具体解决步骤
确认并安装正确的安全版本
- 6.0.8版本的
System.Text.Encodings.Web在官方NuGet源是存在的,先检查你的NuGet源配置是否包含官方源。 - 直接通过命令行安装指定版本:
Install-Package System.Text.Encodings.Web -Version 6.0.8 - 若使用PackageReference格式,可在项目的
.csproj文件中直接添加强制版本声明:<PackageReference Include="System.Text.Encodings.Web" Version="6.0.8"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference>
- 6.0.8版本的
强制覆盖间接依赖
RestSharp 108.0.2可能间接依赖旧版本的System.Text.Encodings.Web,需要确保项目直接引用的版本覆盖间接依赖:- 执行
Update-Package -reinstall重新安装所有包,刷新依赖链。 - 使用
dotnet list package --include-transitive查看依赖树,确认所有System.Text.Encodings.Web的引用都已更新至6.0.8或更高版本。
- 执行
适配.NET Framework 4.7.2的备选方案
- 若安装6.0.8版本遇到兼容性问题,可尝试升级至支持.NET Framework 4.7.2的更高版本(如7.0.0、8.0.0),这些版本已包含CVE修复,且兼容4.7.2框架。
处理扫描工具误报
- 若已确认安装了安全版本但扫描结果仍显示高危,可手动在扫描工具中将这两个CVE标记为已修复,或向工具提供商反馈包名识别错误的问题。
验证修复
清理项目的bin和obj文件夹,重新构建后再次运行依赖扫描,确认CVE的严重程度已降低或消失。
内容的提问来源于stack exchange,提问作者Manoj Buddy
相关产品推荐
相关产品推荐

