Vulnerabilidades graves de execução de código afetam aplicativos baseados em OpenVPN
Os pesquisadores de segurança da Claroty levantaram o alarme para uma série de vulnerabilidades graves de execução de código que afetam as soluções de rede privada virtual (VPN) que dependem do OpenVPN.
A empresa documentou quatro erros de segurança em produtos da HMS Industrial Networks, MB Connect Line, PerFact e Siemens que permitem que invasores realizem a execução de códigos enganando vítimas em potencial para que visitem uma página da web criada com códigos maliciosos.
As soluções VPN são projetadas para fornecer aos usuários meios para criptografar o tráfego que flui entre seus dispositivos e uma rede específica, para garantir que dados potencialmente confidenciais sejam transmitidos com segurança, e o OpenVPN é a implementação mais comum de uma solução VPN.
Durante sua análise de soluções baseadas em OpenVPN, Claroty descobriu que os fornecedores geralmente implantam OpenVPN como um serviço com privilégios de SISTEMA, o que representa riscos de segurança, porque qualquer aplicativo remoto ou local pode controlar uma instância OpenVPN para iniciar ou encerrar uma conexão segura.
Normalmente, uma arquitetura cliente-servidor VPN envolve a presença de um front end (um aplicativo GUI), um back end (que recebe comandos do front-end) e OpenVPN (um serviço controlado pelo back end e responsável pela VPN conexão).
Como na maioria dos casos o protocolo de texto não criptografado é usado dentro do canal de soquete dedicado através do qual o front end controla o back end, sem qualquer forma de autenticação, “qualquer pessoa com acesso à porta TCP local onde o back end escuta, pode carregar uma configuração OpenVPN e forçar o back-end a gerar uma nova instância do OpenVPN com essa configuração ”, explicou Claroty.
Um invasor procurando explorar essa falha simplesmente precisa enganar a vítima para que acesse um site malicioso contendo código JavaScript incorporado projetado para enviar uma solicitação POST cega localmente, para injetar comandos no back-end do cliente VPN. Este é um caso clássico de SSRF (Server-Side Request Forgery), disse a empresa.
“Assim que a vítima clicar no link, uma solicitação HTTP POST será disparada localmente para a porta TCP dedicada e, uma vez que o HTTP é um protocolo baseado em texto não criptografado em que cada linha termina com \ n, o servidor back end irá ler e ignorar todas as linhas até alcançando um comando significativo ”, de acordo com a documentação da Claroty.
Como o servidor de back-end analisará e executará automaticamente quaisquer comandos válidos que possa receber, ele pode ser instruído a carregar um arquivo de configuração remota contendo comandos específicos que levam à execução de código ou à instalação de cargas maliciosas.
“O invasor não precisa configurar um servidor OpenVPN dedicado próprio porque o comando da diretiva up OpenVPN está sendo executado antes que a conexão com o servidor OpenVPN ocorra”, disse Claroty.
Para obter a execução remota de código, no entanto, é necessário o acesso ao servidor SMB controlado pelo invasor, o que significa que o invasor precisa estar na rede de domínio com o sistema de destino ou o computador vítima configurado para permitir o acesso do SMB a servidores externos, o pesquisadores observam.
Um total de cinco identificadores CVE foram emitidos com base na pesquisa da Claroty: CVE-2020-14498 (CVSS 9.6 – eCatcher da HMS Industrial Networks AB), CVE-2021-27406 (CVSS 8.8 – OpenVPN-Client da PerFact), CVE-2021-31338 ( CVSS 7.8 – Cliente SINEMA RC da Siemens) e CVE-2021-33526 e CVE-2021-33527 (CVSS 7.8 – MB Connect Line GmbH’s mbConnect Dialup).