Vulnerabilidad en el paquete npm "tar" (CVE-2021-32804)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-22
Limitación incorrecta de nombre de ruta a un directorio restringido (Path Traversal)
Fecha de publicación:
03/08/2021
Última modificación:
25/04/2022
Descripción
El paquete npm "tar" (también se conoce como node-tar) versiones anteriores a 6.1.1, 5.0.6, 4.4.14 y 3.3.2, presenta una vulnerabilidad de Creación y Sobrescritura de archivos arbitraria debido a un saneo insuficiente de rutas absolutas. node-tar pretende impedir la extracción de rutas absolutas de archivos al convertir las rutas absolutas en relativas cuando el flag "preservePaths" no está establecido en "true". Esto se consigue eliminando el root de la ruta absoluta de cualquier ruta de archivo absoluta contenida en un archivo tar. Por ejemplo, "home/user/.bashrc" se convertiría en "home/user/.bashrc". Esta lógica era insuficiente cuando las rutas de los archivos contenían roots de ruta repetidas, como "////home/user/.bashrc". "node-tar" sólo eliminaba un único root de esas rutas. Cuando se daba una ruta de archivo absoluta con raíces de ruta repetidas, la ruta resultante (por ejemplo, "///home/user/.bashrc") seguía resolviéndose como una ruta absoluta, permitiendo así la creación y sobrescritura de archivos arbitraria. Este problema se ha solucionado en las versiones 3.2.2, 4.4.14, 5.0.6 y 6.1.1. Los usuarios pueden solucionar esta vulnerabilidad sin necesidad de actualizar al crear un método personalizado "onentry" que sanee "entry.path" o un método "filter" que elimine las entradas con rutas absolutas. Consulte el aviso de GitHub mencionado para obtener más detalles. Tenga en cuenta CVE-2021-32803 que corrige un error similar en versiones posteriores de tar
Impacto
Puntuación base 3.x
8.10
Gravedad 3.x
ALTA
Puntuación base 2.0
5.80
Gravedad 2.0
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:tar_project:tar:*:*:*:*:*:node.js:*:* | 3.2.2 (excluyendo) | |
| cpe:2.3:a:tar_project:tar:*:*:*:*:*:node.js:*:* | 4.0.0 (incluyendo) | 4.4.14 (excluyendo) |
| cpe:2.3:a:tar_project:tar:*:*:*:*:*:node.js:*:* | 5.0.0 (incluyendo) | 5.0.6 (excluyendo) |
| cpe:2.3:a:tar_project:tar:*:*:*:*:*:node.js:*:* | 6.0.0 (incluyendo) | 6.1.1 (excluyendo) |
| cpe:2.3:a:oracle:graalvm:20.3.3:*:*:*:enterprise:*:*:* | ||
| cpe:2.3:a:oracle:graalvm:21.2.0:*:*:*:enterprise:*:*:* | ||
| cpe:2.3:a:siemens:sinec_infrastructure_network_services:*:*:*:*:*:*:*:* | 1.0.1.1 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://cert-portal.siemens.com/productcert/pdf/ssa-389290.pdf
- https://github.com/npm/node-tar/commit/1f036ca23f64a547bdd6c79c1a44bc62e8115da4
- https://github.com/npm/node-tar/security/advisories/GHSA-3jfq-g458-7qm9
- https://www.npmjs.com/advisories/1770
- https://www.npmjs.com/package/tar
- https://www.oracle.com/security-alerts/cpuoct2021.html



