Vulnerabilidad en Vela (CVE-2024-28236)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-200
Revelación de información
Fecha de publicación:
12/03/2024
Última modificación:
22/01/2025
Descripción
Vela es un marco de automatización de tuberías (CI/CD) construido sobre tecnología de contenedores de Linux escrita en Golang. Los pipelines de Vela pueden usar sustitución de variables combinada con campos insensibles como "parámetros", "imagen" y "punto de entrada" para inyectar secretos en un complemento/imagen y, mediante el uso de manipulación común de cadenas de sustitución, pueden evitar el enmascaramiento de registros y exponer secretos sin el uso de el bloque de comandos. Este comportamiento inesperado afecta principalmente a los secretos restringidos por la opción "sin comandos". Esto puede provocar un uso no intencionado del valor secreto y un mayor riesgo de exponer el secreto durante la ejecución de la imagen sin pasar por el enmascaramiento del registro. **Para explotar esto**, el autor de la canalización debe proporcionar los secretos a un complemento manipulado de tal manera que imprima esos parámetros en los registros. Los parámetros del complemento no están manipulados para valores confidenciales y, a menudo, se imprimen intencionalmente durante la ejecución con fines informativos/depuración. Por lo tanto, los parámetros deben tratarse como insensibles. Si bien Vela proporciona enmascaramiento de secretos, la exposición de secretos no se resuelve por completo mediante el proceso de enmascaramiento. Una imagen acoplable (complemento) puede exponer secretos fácilmente si no se manejan adecuadamente o se modifican de alguna manera. El usuario final tiene la responsabilidad de comprender cómo se utilizan los valores inyectados en un complemento. Este es un riesgo que existe para muchos sistemas CICD (como GitHub Actions) que manejan variables confidenciales de tiempo de ejecución. Más bien, el mayor riesgo es que los usuarios que restringen un secreto a la opción "sin comandos" y usan restricción de imágenes aún puedan exponer su valor secreto a través de modificaciones de sustitución, lo que convierte las restricciones de imágenes y comandos en una falsa sensación de seguridad. Este problema se solucionó en la versión 0.23.2. Se recomienda a los usuarios que actualicen. Los usuarios que no puedan actualizar no deben proporcionar valores confidenciales a los complementos que potencialmente puedan exponerlos, especialmente en los "parámetros" que no están destinados a ser utilizados para valores confidenciales, asegúrese de que los complementos (especialmente aquellos que utilizan secretos compartidos) sigan las mejores prácticas para evitar el registro de parámetros. que se espera que sean confidenciales, minimice los secretos con los eventos `pull_request` habilitados, ya que esto permite a los usuarios cambiar las configuraciones de canalización e incorporar secretos a pasos que normalmente no forman parte del proceso de CI, utilice la configuración de aprobación de compilación y restrinja las compilaciones que no sean de confianza, usuarios y limitar el uso de secretos compartidos, ya que su acceso es menos restrictivo por naturaleza.
Impacto
Puntuación base 3.x
7.70
Gravedad 3.x
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:go-vela:worker:*:*:*:*:*:*:*:* | 0.23.2 (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://github.com/go-vela/worker/commit/e1572743b008e4fbce31ebb1dcd23bf6a1a30297
- https://github.com/go-vela/worker/security/advisories/GHSA-pwx5-6wxg-px5h
- https://github.com/go-vela/worker/commit/e1572743b008e4fbce31ebb1dcd23bf6a1a30297
- https://github.com/go-vela/worker/security/advisories/GHSA-pwx5-6wxg-px5h