← back
CVE-2020-36193highunder attackCWE-59

CVE-2020-36193

73Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA.

ssvc Actcvss 7.5epss 71%
from disclosure to weapon
Published on NVDJan 18
CISA KEV+584d
exploitation probability
71%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
Action required by CISAfederal deadline: 2022-09-15

Apply updates per vendor instructions.

Summary

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.

Technical detail

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).

How it’s exploited

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).

Versions

Affected
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.
Fixed in
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).

How to protect

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.

How to detect

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.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
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
Affected products
n/a · n/a