CVE-2020-36193
Priorize a correção. Ela está sob exploração confirmada pelo CISA.
Apply updates per vendor instructions.
Resumo
Falha de directory traversal na biblioteca PHP Archive_Tar (PEAR), usada por Drupal e outros softwares para extrair arquivos .tar. Um arquivo tar malicioso pode conter um link simbólico apontando para fora do diretório de extração, permitindo sobrescrever arquivos arbitrários no sistema quando a aplicação processa esse tar. Importa porque a exploração exige apenas que a aplicação aceite e extraia um tar fornecido pelo atacante — não é uma falha de rede remota trivial, mas está confirmada no catálogo KEV da CISA como explorada ativamente.
Detalhamento técnico
A vulnerabilidade está em Archive/Tar.php, no método de extração (_extractList), na forma como o código trata entradas do tipo 'symlink' (typeflag '2') dentro de um arquivo tar. Antes da correção, o Archive_Tar não verificava se o destino do link simbólico ($v_header['link']) permanecia dentro do diretório de extração pretendido ($p_path). Isso permite que um tar malicioso defina um link simbólico apontando para um caminho arbitrário do sistema de arquivos, e uma entrada subsequente no mesmo arquivo, ao ser gravada 'através' desse link, acaba escrevendo conteúdo controlado pelo atacante fora do diretório de extração. Trata-se essencialmente de CWE-22 (Path Traversal) combinado com CWE-59 (resolução inadequada de link antes de acesso a arquivo).
Como é explorada
O vetor exige que a aplicação vulnerável use Archive_Tar para extrair um arquivo .tar (ou .tar.gz/.tar.bz2, que a biblioteca também processa) cujo conteúdo é, direta ou indiretamente, controlado pelo atacante — por exemplo, upload de módulos, temas, backups ou pacotes que a aplicação depois extrai no servidor. Não há acesso à rede necessário para explorar a falha em si; o atacante precisa apenas conseguir que seu arquivo tar malicioso seja processado por uma chamada de extração vulnerável, o que na prática costuma exigir upload autenticado em algum painel administrativo ou funcionalidade de importação. Quando as pré-condições são satisfeitas, o resultado é escrita/sobrescrita arbitrária de arquivos no sistema (refletido no CVSS: C:N/I:H/A:N — impacto de integridade alto, sem leitura de dados nem negação de serviço direta), o que pode levar a execução de código dependendo do que for sobrescrito (ex.: arquivos de configuração, scripts executados pelo servidor).
Versões
Como se proteger
Atualizar a biblioteca Archive_Tar para uma versão que incorpore a correção do commit cde4605 (que adiciona a verificação de que o link resolvido via realpath() está contido dentro do caminho de extração antes de permitir a operação). Aplicações que embutem Archive_Tar via outros produtos devem seguir o calendário de atualização do produto host — no caso do Drupal 7, o advisory SA-CORE-2021-001 trata especificamente desta CVE, com correção presente a partir da série 7.75+ conforme changelog do projeto. Distribuições Linux aplicaram backports específicos: Debian 9 (stretch) corrigiu no pacote drupal7 versão 7.52-2+deb9u14 e no pacote php-pear versão 1:1.10.1+submodules+notgz-9+deb9u3. Como paliativo quando a atualização não é imediata, restringir ou desabilitar funcionalidades que extraem tar de origem não confiável (uploads de módulos/temas/pacotes) reduz a superfície, mas não é uma correção — a falha está na lógica de extração, não em configuração de permissões do sistema.
Como detectar
Após a aplicação da correção, tentativas de exploração geram no log da aplicação uma mensagem de erro do Archive_Tar do tipo 'Out-of-path file extraction {arquivo --> destino}', indicando que uma extração foi bloqueada por apontar para fora do diretório esperado — esse é o sinal mais confiável de que alguém tentou (ou tenta) abusar da falha. Em ambientes ainda vulneráveis (sem a correção), não há sinal de log nativo da biblioteca; nesse caso, a única forma prática de detecção é inspecionar arquivos .tar recebidos por upload antes da extração, procurando entradas do tipo link simbólico (typeflag '2') cujo destino resolva para fora do diretório de extração esperado, e monitorar o sistema de arquivos por escritas inesperadas em locais fora do diretório de extração no momento em que a aplicação processa uploads de arquivos tar.