Múltiples Vulnerabilidades en Trend Micro Email Encryption Gateway
Varias vulnerabilidades afectan al sistema ‘Email Encryption Gateway’ de Trend Micro, algunas de las cuales podrían llevar a la ejecución remota de código arbitrario.
Introducción
Email Encryption Gateway es un software basado en Linux que permite el cifrado de correo desde el gateway corporativo.
El cifrado y descifrado del correo en el cliente TMEEG (Trend Micro Email Encryption Gateway) está controlado por un gestor de directivas que permite al administrador configurar directivas basándose en varios parámetros (direcciones de correo remitente, destinatario, palabras clave, etc). Se presenta como una interfaz para configurar los ‘MTA’ salientes.
Se han encontrado vulnerabilidades en la consola web que permitirían a un atacante no autenticado ejecutar comandos arbitrarios con privilegios de root.
Descripción
El informe contiene doce vulnerabilidades que afectan este producto, que pasaremos a explicar de manera muy resumida en las siguientes líneas.
Vulnerabilidad 1 (Actualización insegura vía HTTP)
La comunicación con los servidores de actualización no está cifrada. Cuando la aplicación comprueba las actualizaciones espera recuperar un archivo en texto plano con un formato determinado. Si dentro de este fichero se encuentra una nueva actualización, el paquete RPM se descargará sin ningún tipo de validación, lo que facilitaría a un atacante instalar una actualización maliciosa en el sistema.
Vulnerabilidad 2 (Escritura de archivos con ejecución de comandos)
El fragmento de código responsable de descargar el archivo de actualización ‘(com/ident/pmg/web/CheckForUpdates.java)’ permite que un atacante pueda controlar la ruta donde se va a descargar el fichero de actualización. El archivo RPM es escrito como root con permisos 0644. Lo que permite varios vectores de ejecución de código. El vector presentado por los descubridores de la vulnerabilidad consiste en la creación de una tarea cron en el directorio ‘/etc/cron.d’.
Vulnerabilidad 3 (Actualizaciones sin validar)
El mecanismo de actualización presentado en la vulnerabilidad 2 no valida el archivo RPM descargado. Un atacante podría alterar el archivo RPM e inyectar el suyo propio, siempre que se encuentre en una posición Man in the Middle. Los investigadores ha hecho una prueba de concepto creando un archivo RPM malicioso capaz de ejecutar una ‘shell’ inversa.
Vulnerabilidad 4 (Ubicación de logs arbitraría con ejecución de comandos)
La ubicación de los archivos de log se puede modificar en el fichero ‘logConfiguration.do’. Un atacante podría redigir los logs de MimeBuildServer a /opt/Tomcat/Webapps/root/Pepito.jsp para posteriormente modificar su configuración e incluir código JSP arbitrario, que será ejecutado la próxima vez que se reinicie el servicio.
Vulnerabilidad 5 (Registro sin validación)
El registro de dispositivos se habilita para que los administradores del sistema configuren los dispositivos virtuales al implementarlo. Sin embargo es accesible sin autenticación incluso después de que el dispositivo esté configurado, lo que permitiría a los atacantes establecer parámetros de configuración como nombre de usuario y contraseña de administrador.
Vulnerabilidad 6 (Cross Site Request Forgery)
No hay protección contra CSRF en ningún formulario de la interfaz web. Esto permitiría a un atacante enviar solicitudes autenticadas cuando un usuario autenticado examina un dominio controlado por el atacante. Se podría combinar con la vulnerabilidad 4 y ejecutar código arbitrario de forma remota. También se puede combinar con la vulnerabilidad 2 y la 3, lo que también podría llevar a la ejecución remota de comandos.
Vulnerabilidad 7 (XML External Entity Injection)
El parámetro ‘pciExceptionXml’ del script ‘Configuration.jsp’ es vulnerable a ‘XML External Entity Injection’. La prueba de concepto utiliza entidades externas para enviar el archivo ‘/etc/shadow’ a un servidor externo. Requiere que el usuario esté autenticado dentro de la consola web, por lo que el atacante necesitará obtener primero unas credenciales válidas. Los posibles vectores para lograr esto incluyen cualquiera de los ataques XSS o la explotación de la vulnerabilidad XSRF.
Vulnerabilidad 8 (Reflected Cross Site Scripting)
Los parámetros ‘deniedKeysExpireTimeout’ y ‘keyAge’ del script ‘keymanserverconfig.jsp’ son vulnerables a XSS.
Vulnerabilidad 9 (Reflected Cross Site Scripting)
Los parámetros:
‘decryptionXHeader’, ‘encryptionXHeader’, ‘meetingRequestEmailText’, ‘zdAttachmentPayloadTemplate’, ‘zdAttachmentTemplate’, ‘zdMainTemplate’, ‘zdMainTemplateZdv4‘ son vulnerables a XSS.
Vulnerabilidad 10 (Stored Cross Site Scripting)
El parámetro ‘hideEmails’ del script ‘editPolicy.jsp’ es vulnerable a cross-site scripting. La siguiente solicitud agrega una directiva para la dirección de correo electrónico, la entrada se almacenará de forma no escapada y será renderizada cada vez que se ejecute el script ‘Policies.do’
Vulnerabilidad 11 (SQL Injection)
El parámetro ‘hidEdittld’ del script ‘policies.jsp’ es vulnerable a SQL-Injection. El script lee un parámetro ‘hidEdittld’ y lo reenvía al script ‘editPolicy.jsp’ este script pasará sin ninguna modificación el parámetro al método ‘loadRuleDetails’ de la clase ‘formEditPolicy’, y lo usa para generar una instrucción SQL.
Vulnerabilidad 12 (SQL Injection)
El parámetro ‘hidRuleId’ del script ‘editPolicy.jsp’ es vulnerable a SQL Injection. El script lee el parámetro ‘hidRuleId’ y llama a ‘DeletePolicy’ sin hacer ninguna comprobación de seguridad sobre lo insertado.
Vulnerabilidad 13 (SQL Injection)
El parámetro ‘SearchString’ del script ’emailSearch.jsp’ es vulnerable a SQL Injection.
CVE
Post original
Email Encryption Gateway es un software basado en Linux que permite el cifrado de correo desde el gateway corporativo.
El cifrado y descifrado del correo en el cliente TMEEG (Trend Micro Email Encryption Gateway) está controlado por un gestor de directivas que permite al administrador configurar directivas basándose en varios parámetros (direcciones de correo remitente, destinatario, palabras clave, etc). Se presenta como una interfaz para configurar los ‘MTA’ salientes.
Se han encontrado vulnerabilidades en la consola web que permitirían a un atacante no autenticado ejecutar comandos arbitrarios con privilegios de root.
Descripción
El informe contiene doce vulnerabilidades que afectan este producto, que pasaremos a explicar de manera muy resumida en las siguientes líneas.
Vulnerabilidad 1 (Actualización insegura vía HTTP)
La comunicación con los servidores de actualización no está cifrada. Cuando la aplicación comprueba las actualizaciones espera recuperar un archivo en texto plano con un formato determinado. Si dentro de este fichero se encuentra una nueva actualización, el paquete RPM se descargará sin ningún tipo de validación, lo que facilitaría a un atacante instalar una actualización maliciosa en el sistema.
Vulnerabilidad 2 (Escritura de archivos con ejecución de comandos)
El fragmento de código responsable de descargar el archivo de actualización ‘(com/ident/pmg/web/CheckForUpdates.java)’ permite que un atacante pueda controlar la ruta donde se va a descargar el fichero de actualización. El archivo RPM es escrito como root con permisos 0644. Lo que permite varios vectores de ejecución de código. El vector presentado por los descubridores de la vulnerabilidad consiste en la creación de una tarea cron en el directorio ‘/etc/cron.d’.
Vulnerabilidad 3 (Actualizaciones sin validar)
El mecanismo de actualización presentado en la vulnerabilidad 2 no valida el archivo RPM descargado. Un atacante podría alterar el archivo RPM e inyectar el suyo propio, siempre que se encuentre en una posición Man in the Middle. Los investigadores ha hecho una prueba de concepto creando un archivo RPM malicioso capaz de ejecutar una ‘shell’ inversa.
Vulnerabilidad 4 (Ubicación de logs arbitraría con ejecución de comandos)
La ubicación de los archivos de log se puede modificar en el fichero ‘logConfiguration.do’. Un atacante podría redigir los logs de MimeBuildServer a /opt/Tomcat/Webapps/root/Pepito.jsp para posteriormente modificar su configuración e incluir código JSP arbitrario, que será ejecutado la próxima vez que se reinicie el servicio.
Vulnerabilidad 5 (Registro sin validación)
El registro de dispositivos se habilita para que los administradores del sistema configuren los dispositivos virtuales al implementarlo. Sin embargo es accesible sin autenticación incluso después de que el dispositivo esté configurado, lo que permitiría a los atacantes establecer parámetros de configuración como nombre de usuario y contraseña de administrador.
Vulnerabilidad 6 (Cross Site Request Forgery)
No hay protección contra CSRF en ningún formulario de la interfaz web. Esto permitiría a un atacante enviar solicitudes autenticadas cuando un usuario autenticado examina un dominio controlado por el atacante. Se podría combinar con la vulnerabilidad 4 y ejecutar código arbitrario de forma remota. También se puede combinar con la vulnerabilidad 2 y la 3, lo que también podría llevar a la ejecución remota de comandos.
Vulnerabilidad 7 (XML External Entity Injection)
El parámetro ‘pciExceptionXml’ del script ‘Configuration.jsp’ es vulnerable a ‘XML External Entity Injection’. La prueba de concepto utiliza entidades externas para enviar el archivo ‘/etc/shadow’ a un servidor externo. Requiere que el usuario esté autenticado dentro de la consola web, por lo que el atacante necesitará obtener primero unas credenciales válidas. Los posibles vectores para lograr esto incluyen cualquiera de los ataques XSS o la explotación de la vulnerabilidad XSRF.
Vulnerabilidad 8 (Reflected Cross Site Scripting)
Los parámetros ‘deniedKeysExpireTimeout’ y ‘keyAge’ del script ‘keymanserverconfig.jsp’ son vulnerables a XSS.
Vulnerabilidad 9 (Reflected Cross Site Scripting)
Los parámetros:
‘decryptionXHeader’, ‘encryptionXHeader’, ‘meetingRequestEmailText’, ‘zdAttachmentPayloadTemplate’, ‘zdAttachmentTemplate’, ‘zdMainTemplate’, ‘zdMainTemplateZdv4‘ son vulnerables a XSS.
Vulnerabilidad 10 (Stored Cross Site Scripting)
El parámetro ‘hideEmails’ del script ‘editPolicy.jsp’ es vulnerable a cross-site scripting. La siguiente solicitud agrega una directiva para la dirección de correo electrónico, la entrada se almacenará de forma no escapada y será renderizada cada vez que se ejecute el script ‘Policies.do’
Vulnerabilidad 11 (SQL Injection)
El parámetro ‘hidEdittld’ del script ‘policies.jsp’ es vulnerable a SQL-Injection. El script lee un parámetro ‘hidEdittld’ y lo reenvía al script ‘editPolicy.jsp’ este script pasará sin ninguna modificación el parámetro al método ‘loadRuleDetails’ de la clase ‘formEditPolicy’, y lo usa para generar una instrucción SQL.
Vulnerabilidad 12 (SQL Injection)
El parámetro ‘hidRuleId’ del script ‘editPolicy.jsp’ es vulnerable a SQL Injection. El script lee el parámetro ‘hidRuleId’ y llama a ‘DeletePolicy’ sin hacer ninguna comprobación de seguridad sobre lo insertado.
Vulnerabilidad 13 (SQL Injection)
El parámetro ‘SearchString’ del script ’emailSearch.jsp’ es vulnerable a SQL Injection.
CVE
- CVE-2018-6219
- CVE-2018-6220
- CVE-2018-6221
- CVE-2018-6222
- CVE-2018-6223
- CVE-2018-6224
- CVE-2018-6225
- CVE-2018-6226
- CVE-2018-6227
- CVE-2018-6228
- CVE-2018-6229
- CVE-2018-6230
Productos vulnerables
Trend Micro Email Encryption Gateway 5.5 (Build 1111.00)
Información del fabricante y soluciones
https://success.trendmicro.com/solution/1119349-security-bulletin-trend-micro-email-encryption-gateway-5-5-multiple-vulnerabilities
Créditos
Leandro Barragán (Core Security Consulting Services)
Maximiliano Vidal (Core Security Consulting Services)
Mario Parra
@MPAlonso_
@MPAlonso_
Más información:
Post original
Reporte
Powered by WPeMatico