Facebook Google Plus Twitter LinkedIn YouTube RSS Menu Search Resource - BlogResource - WebinarResource - ReportResource - Eventicons_066 icons_067icons_068icons_069icons_070

Tenable Blog

Subscribe

CVE-2020-0618: Proof of Concept for Microsoft SQL Server Reporting Services Vulnerability Available

Availability of proof-of-concept (PoC) code for recently disclosed remote code execution flaw in Microsoft SQL Server Reporting Services leaves sites vulnerable to attack.

Background

On February 11, Microsoft patched a remote code execution vulnerability in Microsoft SQL Server Reporting Services (SSRS), which provides “a set of on-premises tools and services that create, deploy, and manage mobile and paginated reports.” The issue was reported to Microsoft by Soroush Dalili, principal security consultant at MDSec.

Analysis

CVE-2020-0618 is an improper input validation vulnerability in the ReportingServicesWebServer.dll of SSRS. According to a blog post from Dalili, the OnLoad method of the Microsoft.Reporting.WebForms.BrowserNavigationCorrector class passes untrusted user input (e.g. a serialized payload passed via the NavigationCorrector$ViewState parameter) to the LosFormatter class to be deserialized.

In his research, Dalili observed the Microsoft.Reporting.WebForms.BrowserNavigationCorrector class was used by the Microsoft.ReportingServices.WebServer.ReportViewerPage class.

To exploit the flaw, Dalili targeted the ReportViewer.aspx file on a SharePoint server. By sending a specially crafted POST request containing a serialized payload generated using ysoserial.net, Dalili could trigger the exploit, obtaining a shell on the vulnerable server.

Microsoft SSRS needs to be installed before an attacker can exploit the flaw. However, we’re seeing reports from security researchers who are searching for vulnerable instances.

Penetration tester Damian Schwyrz recently identified and reported the flaw “on a server of a very large car company.”

Additionally, Dalili shared a Google search query that shows over 8,900 publicly accessible instances of ReportViewer.aspx, many of which appear to be government-related.

It is unclear how many of the sites found in this Google search are actually vulnerable to the flaw. However, the uncertainty won’t prohibit attackers from attempting to identify vulnerable sites and exploit the flaw in the wild.

Proof of concept

As mentioned above, Dalili published a PoC for the vulnerability in a blog post on February 14. A GitHub repository featuring Dalili’s PoC was published the same day. At the time this blog post was published, there were no full-fledged exploit scripts available for this vulnerability.

Solution

Microsoft patched this flaw on February 11 as part of Patch Tuesday. According to their advisory, the vulnerability affects Microsoft SQL Server 2012, 2014 and 2016. However, additional reporting from security researcher Kevin Beaumont confirmed this flaw also affects Microsoft SQL Server 2008. The reason 2008 is not listed in the advisory is because it reached its end-of-support cycle in July 2014.

Microsoft has provided General Distribution Release (GDR) and a Cumulative Update (CU) for the affected SQL Server versions. According to Microsoft, GDR updates “only contain security updates for the given baseline” while CUs “contain all functional fixes and security updates for the given baseline.”

Please refer to the table below for the applicable update of your SQL Server based on your current version.

Article Title Type Applicable Versions Included Servicing Release
4532097 Security update for SQL Server 2016 Service Pack 2 GDR 13.0.5026.0—13.0.5101.9 KB4505220
4535706 Security update for SQL Server 2016 Service Pack 2 CU 13.0.5149.0—13.0.5598.27 KB4527378
4532095 Security update for SQL Server 2014 Service Pack 3 GDR 12.0.6024.0—12.0.6108.1 KB4505218
4535288 Security update for SQL Server 2014 Service Pack 2 CU 12.0.6205.1—12.0.6329.1 KB4500181
4532098 Security update for SQL Server 2012 Service Pack 4 GDR 111.0.7001.0—11.0.7462.6 KB4057116

Identifying affected systems

A list of Tenable plugins to identify this vulnerability can be found here. This includes an uncredentialed check (plugin ID 133718), which requires enabling paranoid mode.

Get more information

Join Tenable's Security Response Team on the Tenable Community.

Learn more about Tenable, the first Cyber Exposure platform for holistic management of your modern attack surface.

Get a free 30-day trial of Tenable.io Vulnerability Management.

Related Articles

Cybersecurity News You Can Use

Enter your email and never miss timely alerts and security guidance from the experts at Tenable.