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

Vulnerabilidad en vault-cli (CVE-2021-43837)

Gravedad CVSS v3.1:
CRÍTICA
Tipo:
CWE-94 Control incorrecto de generación de código (Inyección de código)
Fecha de publicación:
16/12/2021
Última modificación:
09/08/2022

Descripción

vault-cli es una herramienta configurable de interfaz de línea de comandos (y biblioteca de python) para interactuar con Hashicorp Vault. En versiones anteriores a 3.0.0 vault-cli cuenta con la capacidad de renderizar valores templados. Cuando un secreto comienza con el prefijo "!template!", vault-cli interpreta el resto del contenido del secreto como una plantilla Jinja2. Jinja2 es un potente motor de plantillas y no está diseñado para renderizar de forma segura plantillas arbitrarias. Un atacante que controle una plantilla jinja2 renderizada en una máquina puede lanzar código arbitrario, lo que supone un riesgo de Ejecución de Código Remota (RCE). Si el contenido de la bóveda puede ser completamente confiable, entonces esto no es un problema. De lo contrario, si su modelo de amenaza incluye casos en los que un atacante puede manipular un valor secreto leído desde la bóveda usando vault-cli, entonces esta vulnerabilidad puede afectarle. En la versión 3.0.0, el código relacionado con la interpretación de los secretos de las plantillas de las bóvedas se ha eliminado por completo. Se recomienda a usuarios que actualicen lo antes posible. Para los usuarios que no puedan actualizar, se presenta una solución. Usando la variable de entorno "VAULT_CLI_RENDER=false" o el flag "--no-render" (colocada entre "vault-cli" y el subcomando, por ejemplo "vault-cli --no-render get-all") o añadiendo "render: false" al archivo yaml de configuración de vault-cli es deshabilitada la renderización y se elimina la vulnerabilidad. Usando la librería python, puedes usar "vault_cli.get_client(render=False)" cuando creas tu cliente para conseguir un cliente que no renderice los secretos de las plantillas y así operar de forma segura

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:vault-cli_project:vault-cli:*:*:*:*:*:python:*:* 0.7.0 (incluyendo) 3.0.0 (excluyendo)