微软SQL Server Reporting Services远程代码执行误差危害通告

宣布时间 2020-02-17

误差编号和级别


CVE编号:CVE-2020-0618,危险级别:高危,CVSS分值:官方未评定


影响版本


Microsoft SQL Server 2012 for 32-bit Systems Service Pack 4 (QFE)

Microsoft SQL Server 2012 for x64-based Systems Service Pack 4 (QFE)

Microsoft SQL Server 2014 Service Pack 3 for 32-bit Systems (CU)

Microsoft SQL Server 2014 Service Pack 3 for 32-bit Systems (GDR)

Microsoft SQL Server 2014 Service Pack 3 for x64-based Systems (CU)

Microsoft SQL Server 2014 Service Pack 3 for x64-based Systems (GDR)

Microsoft SQL Server 2016 for x64-based Systems Service Pack 2 (CU)

Microsoft SQL Server 2016 for x64-based Systems Service Pack 2 (GDR)


误差概述


克日,本月微软补丁更新的误差,微软SQL Server Reporting Services远程代码执行误差的PoC被果真,SQL Server Reporting Services提供一组外地工具和服务,用于建设、安排和管理报表。SQL Server Reporting Services中保存一个远程代码执行误差,仅需获得低权限的攻击者可以向受影响版本的Reporting Services实例提交全心结构的请求来使用此误差。乐成使用此误差的攻击者可在Report Server服务帐户上下文中执行恣意代码。


此误差位于ReportingServicesWebServer.dll文件中的BrowserNavigationCorrector类,如下图所示:


尊龙凯时 - 人生就是搏!


从上图可见, BrowserNavigationCorrector类中的OnLoad要领使用LosFormatter类举行反序列化操作。


LosFormatter一样平常用于序列化和反序列化Web窗体页的视图状态(ViewState) ,当未经由滤的用户输入被LosFormatter类举行反序列化操作时,就会爆发反序列化误差。


BrowserNavigationCorrector类被Microsoft.ReportingServices.WebServer.ReportViewerPage类挪用,如下图:


尊龙凯时 - 人生就是搏!


ReportViewerPage类可以由/ReportServer/pages/ReportViewer.aspx页面举行传参挪用,当攻击者挪用该页面并传入恶意结构的序列化payload,即可触发误差。


误差验证


PoC:https://www.mdsec.co.uk/2020/02/cve-2020-0618-rce-in-sql-server-reporting-services-ssrs/。


修复建议


现在微软已宣布补丁修复误差,参考链接:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0618。


若是您的SQL Server版本号未在上文中,那么您的SQL Server版本将不再受到微软官方支持。同样有被此误差影响的危害。请升级到最新的SQL Server,以免遭受误差攻击。


参考链接


https://www.mdsec.co.uk/2020/02/cve-2020-0618-rce-in-sql-server-reporting-services-ssrs/