.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
- 在编辑器中打开project.json文件
- 查找dependencies部分
- 审查直接依赖关系中是否有前面列出的软件包和版本
- 将版本号更改为适当的修复软件包版本
- 保存project.json文件
- 执行
dotnet restore命令
修复直接依赖 - csproj/VS2017
- 在编辑器中打开projectname.csproj文件
- 查找PackageReference节点
- 审查PackageReference元素中是否有前面列出的软件包和版本
- 将版本号更改为适当的修复软件包版本
- 保存csproj文件
- 执行
dotnet restore命令 - 重新编译应用程序
审查传递依赖
有两种方法可以查看传递依赖:
- 使用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及其描述表