← voltar
CVE-2020-36193highsob ataqueCWE-59

CVE-2020-36193

73Vexday Risk Score

Priorize a correção. Ela está sob exploração confirmada pelo CISA.

ssvc Actcvss 7.5epss 71%
da publicação à arma
Publicada no NVD18 de jan.
CISA KEV+584d
probabilidade de exploração
71%top 1% das CVEs
exploração observada
simCISA + VulnCheck
Ação exigida pela CISAprazo federal: 2022-09-15

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

Afetadas
Archive_Tar (PEAR) até e incluindo a versão 1.4.11, conforme a descrição oficial ('Tar.php in Archive_Tar through 1.4.11'). Softwares que empacotam essa biblioteca em versões correspondentes também são afetados — confirmado para Drupal 7 (antes da correção referenciada em SA-CORE-2021-001) e para o pacote php-pear em distribuições Debian.
Corrigidas em
Corrigida pelo commit cde4605 no repositório pear/Archive_Tar, que adiciona a verificação de realpath() do destino do link simbólico contra o diretório de extração. Backports confirmados: Debian 9 (stretch) — drupal7 7.52-2+deb9u14 e php-pear 1:1.10.1+submodules+notgz-9+deb9u3. Para Drupal, a correção está incorporada a partir da linha de releases posterior ao SA-CORE-2021-001 (a série 7.x subsequente, conforme changelog oficial do projeto).

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.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
Tar.php in Archive_Tar through 1.4.11 allows write operations with Directory Traversal due to inadequate checking of symbolic links, a related issue to CVE-2020-28948.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Produtos afetados
n/a · n/a