ID:1166 - Exploit for Memory corruption in Microsoft products - CVE-2017-0290

 
Main Vulnerability Database Exploits ID:1166 - Exploit for Memory corruption in Microsoft products - CVE-2017-0290

ID:1166 - Exploit for Memory corruption in Microsoft products - CVE-2017-0290

Published: March 18, 2020


Vulnerability identifier: #VU6437
Vulnerability risk: High
CVE-ID: CVE-2017-0290
CWE-ID: CWE-119
Exploitation vector: Remote access
Vulnerable software:
Microsoft Malware Protection Engine
Microsoft Forefront Endpoint Protection
Microsoft Endpoint Protection
Microsoft Forefront Security for SharePoint
Microsoft System Center Endpoint Protection
Microsoft Security Essentials
Windows Defender
Windows Intune Endpoint Protection

Link to public exploit:


Vulnerability description

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.


Remediation

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"
    }

}