PT-2021-7001 · Npm+7 · Node-Tar+7
Publicado
2021-08-31
·
Atualizado
2024-06-15
·
CVE-2021-37701
CVSS v3.1
8.2
Alta
| Vetor | AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N |
Nome do software vulnerável e versões afetadas
Versões do node-tar anteriores à 4.4.16
Versões do node-tar anteriores à 5.0.8
Versões do node-tar anteriores à 6.1.7
Descrição
O problema está relacionado ao tratamento de arquivos tar pelo módulo node-tar, o que pode levar à criação e sobrescrita de arquivos arbitrários, bem como à execução de código arbitrário. Isso se deve a uma lógica insuficiente ao extrair arquivos tar que contenham tanto um diretório quanto um link simbólico com o mesmo nome, nos quais os nomes do link simbólico e do diretório utilizam barras invertidas como separador de caminho em sistemas POSIX. A lógica de verificação do cache utilizava os caracteres
e `/` como separadores de caminho, mas é um caractere válido em nomes de arquivos em sistemas POSIX. Isso permite que um arquivo tar não confiável crie um link simbólico para um local arbitrário e extraia arquivos arbitrários para esse local. Um problema semelhante pode ocorrer em sistemas de arquivos que não diferenciam maiúsculas de minúsculas.Recomendações
Para versões do node-tar anteriores à 4.4.16, atualize para a versão 4.4.16 ou posterior.
Para versões do node-tar anteriores à 5.0.8, atualize para a versão 5.0.8 ou posterior.
Para versões do node-tar anteriores à 6.1.7, atualize para a versão 6.1.7 ou posterior.
Como solução temporária para usuários que não podem atualizar, crie um método de filtro personalizado para impedir a extração de links simbólicos, como:
js
const tar = require(‘tar’)
tar.x({
file: ‘archive.tgz’,
filter: (file, entry) => {
if (entry.type === ‘SymbolicLink’) {
return false
} else {
return true
}
}
})
Exploit
Correção
Link Following
Path traversal
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Alt Linux
Almalinux
Astra Linux
Centos
Red Hat
Rocky Linux
Suse
Node-Tar