Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en los clientes "tuf/client" y "tuf/ngclient" en python-tuf (CVE-2021-41131)

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:
19/10/2021
Última modificación:
22/10/2021

Descripción

python-tuf es una implementación de referencia en Python de The Update Framework (TUF). En ambos clientes ("tuf/client" y "tuf/ngclient"), se presenta una vulnerabilidad en la ruta de acceso que, en el peor de los casos, puede sobrescribir los archivos que terminan en ".json" en cualquier parte del sistema cliente en una llamada a "get_one_valid_targetinfo()". Ocurre porque el rolename es usado para formar el nombre del archivo, y puede contener caracteres de salto de ruta (por ejemplo "../../nombre.json"). El impacto está mitigado por algunos hechos: Sólo afecta a las implementaciones que permiten la selección arbitraria de nombres de rol para los metadatos de los objetivos delegados, El ataque requiere la capacidad de A) insertar nuevos metadatos para el rol que atraviesa la ruta y B) conseguir el rol delegado por un metadato de objetivos existente, El contenido del archivo escrito está fuertemente restringido ya que necesita ser un archivo de objetivos válido y firmado. La extensión del archivo es siempre .json. Se presenta una corrección disponible en la versión 0.19 o más reciente. No se presentan soluciones que no requieran cambios en el código. Los clientes pueden restringir el conjunto de caracteres permitidos para los nombres de rol, o pueden almacenar metadatos en archivos con nombres que no sean vulnerables: ninguno de estos enfoques es posible sin modificar python-tuf

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:linuxfoundation:the_update_framework:*:*:*:*:*:python:*:* 0.18.1 (incluyendo)