Memory corruption in Microsoft products - CVE-2017-0290

 

Memory corruption in Microsoft products - CVE-2017-0290

Published: May 9, 2017 / Updated: September 14, 2018


Vulnerability identifier: #VU6437
CSH Severity: High
CVSS v4: 9.3 [CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N]
CVE-ID: CVE-2017-0290
CWE-ID: CWE-119
Exploitation vector: Remote access
Exploit availability: Public exploit is available

Vulnerability details

The vulnerability allows a remote attacker to execute arbitrary code on the target system.

The vulnerability exists due to boundary error when processing files using Microsoft Malware Protection Engine. A remote unauthenticated attacker can create a specially crafted file, trick the victim into downloading it and execute arbitrary code on the target system, once the file is scanned with antimalware solution. 

Successful exploitation of this vulnerability may result in complete compromise of vulnerable system.


Affected software

Microsoft Endpoint Protection
Microsoft Security Essentials
Windows Intune Endpoint Protection
Windows Defender
Microsoft Malware Protection Engine
Microsoft System Center Endpoint Protection
Microsoft Forefront Security for SharePoint
Microsoft Forefront Endpoint Protection

How to mitigate CVE-2017-0290

The vulnerability was fixed in Microsoft Malware Protection Engine version 1.1.13704.0.

The following PowerShell script can be used to check for vulnerable version of Microsoft Malware Protection Engine across computers in your domain:


$ErrorActionPreference = "SilentlyContinue"
$computers = Get-ADComputer -Filter 'Enabled -eq $true' -Properties Enabled | select-object -expandproperty name 
foreach ($computer in $computers) {
$productVersion = ""
Write-Output $computer
    try{
        $w32reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine',$computer )
        $keypath = 'SOFTWARE\Microsoft\Windows Defender\Signature Updates\'
        $productKey = $w32reg.OpenSubKey($keypath)
        if ($productKey) {
        $productVersion = $productKey.GetValue('EngineVersion')
        if ($productVersion -eq "1.1.13701.0") {
        write-output "Version: $productVersion  VULNERABLE!"
                } else {
        write-output "Version OK: $productVersion"
        }
        Clear-Item Variable:productVersion
        } 
        else {write-output "Windows Defender not found"}
    }
    catch{
        write-output "Computer not accessible"
    }

}


Links to Public Exploits and PoC-codes

External References

Related Security Bulletins