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

VetorAV: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 👾

Enumeração de Fraquezas

Identificadores relacionados

ALSA-2022:0350
ALT-PU-2021-2920
ALT-PU-2021-2921
ALT-PU-2021-3615
ALT-PU-2022-1798
ALT-PU-2022-3069
ALT-PU-2022-3073
BDU:2022-02880
CESA-2022_0350
CVE-2021-37701
DLA-3237-1
DSA-5008-1
GHSA-9R2W-394V-53QC
MGASA-2021-0463
MGASA-2022-0103
OPENSUSE-SU-2021:1552-1
OPENSUSE-SU-2021:1574-1
OPENSUSE-SU-2021:3940-1
OPENSUSE-SU-2021:3964-1
OPENSUSE-SU-2021_1552-1
OPENSUSE-SU-2021_1574-1
OPENSUSE-SU-2021_3940-1
OPENSUSE-SU-2021_3964-1
OPENSUSE-SU-2024:11616-1
RHSA-2022:0041
RHSA-2022:0246
RHSA-2022:0350
RHSA-2022:4914
RHSA-2022_0350
RLSA-2022:0350
SUSE-SU-2021:3886-1
SUSE-SU-2021:3940-1
SUSE-SU-2021:3964-1
SUSE-SU-2022:0101-1

Produtos afetados

Alt Linux
Almalinux
Astra Linux
Centos
Red Hat
Rocky Linux
Suse
Node-Tar