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

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". Se "anycmd" é encontrado, o parâmetro "command_line" é extraído da mensagem e diretamente passado como argumento para uma chamada a popen().