
CVE-2020-8809 y CVE-2020-8810
Gurux GXDLMS Director es un programa de código abierto para Windows que permite interactuar con contadores de energía mediante el protocolo DLMS/COSEM.
El software dispone de una funcionalidad de actualización remota para DLL de complementos (add-ins), así como para archivos que contienen códigos OBIS (definiciones específicas de cada dispositivo necesarias para interactuar con los contadores inteligentes).
| CVEID | Nombre(s) de los productos afectados y versión(es) | Tipo de problema |
|---|---|---|
| CVE-2020-8809 | Gurux GXDLMS Director (todas las versiones anteriores a 8.5.1905.1301) | CWE-494: Descarga de código sin verificación de integridad |
| CVE-2020-8810 | Gurux GXDLMS Director (todas las versiones) | CWE-23: Path Traversal relativo |
Resumen
Todas las versiones de Gurux GXDLMS Director anteriores a 8.5.1905.1301 contienen un mecanismo de actualización para complementos y códigos OBIS que funciona a través de una conexión HTTP sin cifrar. Además, todas las versiones contienen un fallo de path traversal que se produce al descargar códigos OBIS. El atacante puede aprovechar estas vulnerabilidades para lograr la ejecución de código.
Descripción
Un atacante intermediario (man-in-the-middle), por ejemplo, un operador de red Wi-Fi malicioso, puede incitar al usuario a descargar actualizaciones modificando el contenido de gurux.fi/obis/files.xml y gurux.fi/updates/updates.xml. Después, el atacante puede modificar el contenido de los archivos descargados. En el caso de los complementos (si el usuario los utiliza), esto conduce a la ejecución de código. En el caso de los códigos OBIS (que el usuario utiliza siempre, ya que son necesarios para comunicarse con los contadores de energía), el atacante puede lograr la ejecución de código explotando una vulnerabilidad de path traversal.
Al descargar códigos OBIS, el programa no verifica que los archivos descargados sean códigos OBIS reales ni comprueba la existencia de path traversal. Esto permite al atacante enviar archivos ejecutables y colocarlos en un directorio de inicio automático (que se ejecuta tras reiniciar), o colocar DLL dentro de la instalación existente de GXDLMS Director (que se ejecutan en la siguiente ejecución de GXDLMS Director). Esto se puede utilizar para lograr la ejecución de código incluso si el usuario no tiene instalado ningún complemento.
Reproducción
obis.obis/files.xml con el siguiente contenido:<files>
<file modified=”28-09-2099″ name=”Iskraemeco”>../../../../../../../../../../Users/Public/Documents/test.txt</file>
</files>
Users/Public/Documents.Users/Public/Documents/test.txt.C:\Windows\system32\drivers\etc\hosts y añada la siguiente línea: 127.0.0.1 gurux.fi (si su servidor HTTP no está en la misma máquina Windows, sustituya 127.0.0.1 por la IP del servidor).C:\Users\Public\Documents\ ahora contiene el archivo test.txt.Solución
Actualice Gurux GXDLMS Director a la versión más reciente.