
CVE-2020-8809 and CVE-2020-8810
O Gurux GXDLMS Director é um programa Windows de código aberto para interagir com medidores de energia usando o protocolo DLMS/COSEM.
O software possui uma funcionalidade de atualização remota para DLLs de complementos, bem como para arquivos contendo códigos OBIS (definições específicas do dispositivo necessárias para interagir com os medidores inteligentes).
| CVEID | Nome do(s) produto(s) afetado(s) e versão(ões) | Tipo de problema |
|---|---|---|
| CVE-2020-8809 | Gurux GXDLMS Director (todas as versões anteriores a 8.5.1905.1301) | CWE-494: Download de Código sem Verificação de Integridade |
| CVE-2020-8810 | Gurux GXDLMS Director (todas as versões) | CWE-23: Travessia de Caminho Relativo |
Resumo
Todas as versões do Gurux GXDLMS Director anteriores a 8.5.1905.1301 contêm um mecanismo de atualização para complementos e códigos OBIS que funciona através de uma conexão HTTP não criptografada. Além disso, todas as versões contêm um bug de travessia de caminho que ocorre ao baixar códigos OBIS. Essas vulnerabilidades podem ser usadas pelo atacante para obter execução de código.
Descrição
Um atacante do tipo homem-no-meio (por exemplo, um operador malicioso de rede Wi-Fi) pode solicitar que o usuário baixe atualizações modificando o conteúdo de gurux.fi/obis/files.xml e gurux.fi/updates/updates.xml. Em seguida, o atacante pode modificar o conteúdo dos arquivos baixados. No caso de complementos (se o usuário estiver usando-os), isso levará à execução de código. No caso de códigos OBIS (que o usuário está sempre usando, pois são necessários para se comunicar com os medidores de energia), o atacante pode obter execução de código explorando uma vulnerabilidade de travessia de caminho.
Ao baixar códigos OBIS, o programa não verifica se os arquivos baixados são códigos OBIS reais e não verifica a travessia de caminho. Isso permite que o atacante envie arquivos executáveis e os coloque em um diretório de inicialização automática (executado após a reinicialização), ou coloque DLLs dentro da instalação existente do GXDLMS Director (executado na próxima execução do GXDLMS Director). Isso pode ser usado para obter execução de código mesmo que o usuário não tenha nenhum complemento instalado.
Reprodução
obis.obis/files.xml com o seguinte conteúdo:<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 e adicione a seguinte linha: 127.0.0.1 gurux.fi (se o seu servidor HTTP não for a mesma máquina Windows, substitua 127.0.0.1 pelo IP do servidor).C:\Users\Public\Documents\ agora contém o arquivo test.txt.Remediação
Atualize o Gurux GXDLMS Director para a versão mais recente.