Featured image of post .NET Core与ASP.NET Core安全漏洞深度解析

.NET Core与ASP.NET Core安全漏洞深度解析

微软安全公告4021279详细披露了.NET Core和ASP.NET Core中的多个安全漏洞,包括权限提升、拒绝服务等风险,并提供了完整的修复指南和受影响软件列表。

.NET Core与ASP.NET Core中的漏洞可能导致权限提升

发布日期:2017年5月9日 | 更新日期:2017年5月10日
版本:1.1

执行摘要

微软发布此安全公告旨在提供有关公共.NET Core和ASP.NET Core中漏洞的信息。本公告还指导开发人员如何正确更新其应用程序。

.NET Core和ASP.NET Core是下一代.NET技术,为Web和云场景提供熟悉且现代的框架。这些产品由.NET和ASP.NET团队与开源开发人员社区合作积极开发,可在Windows、Mac OS X和Linux上运行。

问题CVE及描述

CVE 描述
CVE-2017-0247 拒绝服务
CVE-2017-0248 安全功能绕过
CVE-2017-0249 权限提升
CVE-2017-0256 欺骗

受影响软件

如果Microsoft .NET Core项目使用以下受影响软件包版本,则会受到这些漏洞的影响。

软件包名称 受影响版本 修复版本
System.Text.Encodings.Web 4.0.0 - 4.3.0 4.0.1 - 4.3.1
System.Net.Http 4.1.1 - 4.3.1 4.1.2 - 4.3.2
System.Net.Http.WinHttpHandler 4.0.1 - 4.3.0 4.0.2 - 4.3.1
System.Net.Security 4.0.0 - 4.3.0 4.0.1 - 4.3.1
System.Net.WebSockets.Client 4.0.0 - 4.3.0 4.0.1 - 4.3.1
Microsoft.AspNetCore.Mvc* 1.0.0-1.0.3, 1.1.0-1.1.2 1.0.4, 1.1.3

*包括Microsoft.AspNetCore.Mvc所有相关软件包

公告FAQ

如何知道我是否受到影响?

.NET Core和ASP.NET Core有两种类型的依赖关系:直接依赖和传递依赖。如果您的项目直接或传递依赖于前面列出的任何软件包和版本,则会受到影响。

.NET Core项目格式

.NET Core有两种不同的项目文件格式:

  • project.json:原始格式,包含在.NET Core 1.0和Microsoft Visual Studio 2015中
  • csproj:Microsoft Visual Studio 2017中使用的格式

直接依赖

直接依赖是您专门添加到项目中的依赖项。例如,如果您将Microsoft.AspNetCore.Mvc软件包添加到项目中,则您对Microsoft.AspNetCore.Mvc具有直接依赖。

传递依赖

当您向项目添加一个软件包,而该软件包又依赖于另一个软件包时,就会发生传递依赖。

如何修复受影响的应用程序?

您需要修复直接依赖关系,并审查和修复任何传递依赖关系。

修复直接依赖 - project.json/VS2015

  1. 在编辑器中打开project.json文件
  2. 查找dependencies部分
  3. 审查直接依赖关系中是否有前面列出的软件包和版本
  4. 将版本号更改为适当的修复软件包版本
  5. 保存project.json文件
  6. 执行dotnet restore命令

修复直接依赖 - csproj/VS2017

  1. 在编辑器中打开projectname.csproj文件
  2. 查找PackageReference节点
  3. 审查PackageReference元素中是否有前面列出的软件包和版本
  4. 将版本号更改为适当的修复软件包版本
  5. 保存csproj文件
  6. 执行dotnet restore命令
  7. 重新编译应用程序

审查传递依赖

有两种方法可以查看传递依赖:

  • 使用Visual Studio的解决方案资源管理器
  • 审查project.lock.json(project.json/VS2015)或project.assets.json(csproj/VS2017)文件

修复传递依赖

如果发现对任何易受攻击软件包的引用,必须向项目添加对更新软件包的直接依赖,以覆盖传递依赖。

其他信息

报告安全问题

如果您在.NET Core中发现潜在的安全问题,请将详细信息通过电子邮件发送至。报告可能有资格获得.NET Core错误赏金。

反馈

您可以通过填写Microsoft帮助和支持表来提供反馈。

支持

您可以在GitHub上的.NET Core或ASP.NET Core组织中询问有关此问题的问题。

致谢

微软感谢以下人员与我们合作帮助保护客户:

  • Sidertia Solutions的David Fernandez报告了ASP.NET Core拒绝服务漏洞(CVE-2017-0247)
  • Mikhail Shcherbakov报告了ASP.NET Core欺骗漏洞(CVE-2017-0256)

修订历史

  • V1.0(2017年5月9日):公告发布
  • V1.1(2017年5月10日):修订公告,包含问题CVE及其描述表
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计