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

Vulnerabilidad en TZInfo (CVE-2022-31163)

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:
22/07/2022
Última modificación:
26/10/2022

Descripción

TZInfo es una biblioteca de Ruby que proporciona acceso a los datos de las zonas horarias y permite convertir las horas usando reglas de zonas horarias. Las versiones anteriores a 0.36.1, así como las anteriores a la 1.2.10 cuando son usadas con la fuente de datos de Ruby tzinfo-data, son vulnerables a un salto de ruta relativo. Con la fuente de datos Ruby, las zonas horarias son definidas en archivos Ruby. Se presenta un archivo por zona horaria. Los archivos de zonas horarias se cargan con "require" bajo demanda. En las versiones afectadas, "TZInfo::Timezone.get" no comprueba correctamente los identificadores de zonas horarias, permitiendo un nuevo carácter de línea dentro del identificador. Con la versión 1.9.3 de Ruby y posteriores, puede hacerse que "TZInfo::Timezone.get" cargue archivos no deseados con "require", ejecutándolos dentro del proceso de Ruby. Las versiones 0.3.61 y 1.2.10 incluyen correcciones para comprender correctamente los identificadores de zona horaria. Las versiones 2.0.0 y posteriores no son vulnerables. La versión 0.3.61 aún puede cargar archivos arbitrarios desde la ruta de carga de Ruby si su nombre sigue las reglas para un identificador de zona horaria válido y el archivo presenta un prefijo de "tzinfo/definición" dentro de un directorio en la ruta de carga. Las aplicaciones deben asegurarse de que los archivos que no son confiables no sean colocados en un directorio de la ruta de carga. Como mitigación, el identificador de la zona horaria puede ser comprobado antes de pasarlo a "TZInfo::Timezone.get" asegurándose de que coincide con la expresión regular "A[A-Za-z0-9+\-_]+(?:\/[A-Za-z0-9+\-_]+)*\z"

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:tzinfo_project:tzinfo:*:*:*:*:*:*:*:* 0.3.61 (excluyendo)
cpe:2.3:a:tzinfo_project:tzinfo:*:*:*:*:*:*:*:* 1.0.0 (incluyendo) 1.2.10 (excluyendo)
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*