viernes, 6 de abril de 2018

Ejecución remota de código en el motor de Microsoft Malware Protection

Microsoft ha actualizado urgentemente su motor Microsoft Malware Protection (mpengine.dll) para corregir una vulnerabilidad crítica que afectaría, entre otros, a Windows Defender, Security Essentials y Exchange Server.

La vulnerabilidad fue descubierta por el investigador de Google Project Zero, Thomas Dullien, y se le ha asignado el CVE-2018-0986. Según la investigación de Thomas, existiría una incorrecta comprobación de valores en el módulo principal "mpengine.dll", al haber realizado una implementación 
de la gestión de archivos comprimidos en formato RAR, utilizando para ello un fork del código libre de unrar.
El problema reside en la modificación del código original, eliminando la comprobación de signo de los valores (signed int), que sí estaba presente inicialmente.
En base a la prueba de concepto publicada, un atacante, utilizando un fichero .RAR especialmente modificado, podría generar un desbordamiento de memoria y potencialmente ejecutar código de manera remota, como se comenta en el propio reporte:
An attacker that can set PosR to be -2, and DataSize to 1, will bypass the (PosR + 2 < DataSize) check.
...
A minimal sample RAR file that exhibits these traits & causes mpengine to corrupt memory and crash is attached.

Debido a que este motor está presente de serie en diversas versiones de Windows (desde la 7 hasta la 10) y herramientas específicas de correo, como Exchange server, se han publicado urgentemente paquetes de actualizaciones automáticas para corregir la vulnerabilidad.

Las versiones afectadas son:

  • Microsoft Exchange Server 2013 y 2016
  • Microsoft Forefront Endpoint Protection 2010
  • Microsoft Security Essentials
  • Windows Defender (Windows 7, 8, 10, Server 2012, 2016)
  • Windows Intune Endpoint Protection




Laboratorio Hispasec

Más información:

CVE-2018-0986 | Microsoft Malware Protection Engine Remote Code Execution Vulnerability
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-0986


mpengine contains unrar code forked from unrar prior to 5.0, introduces new bug while fixing others
https://bugs.chromium.org/p/project-zero/issues/detail?id=1543&desc=2