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”

Produto(s)

LiquidVPN para macOS

Versão(ões) afetada(s)

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. Isto leva ao seguinte problema:

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]");
...
---

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://nvd.nist.gov/vuln/detail/CVE-2018-18857

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


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

Última modificação: 7 de novembro de 2018