CVE-2026-29050 in melange
Resumen
por VulDB • 2026-06-02
melange permite a los usuarios construir paquetes apk utilizando pipelines declarativos. A partir de la versión 0.32.0 y antes de la versión 0.43.4, un atacante que pueda influir en un archivo de configuración de melange —por ejemplo, a través de CI impulsado por pull requests o escenarios de build-as-a-service— podría establecer `pipeline[].uses` en un valor que contenga secuencias `../` o una ruta absoluta. La función `(*Compiled).compilePipeline` en `pkg/build/compile.go` pasaba `uses` directamente a `filepath.Join(pipelineDir, uses + ".yaml")` sin validar el valor, por lo que la ruta resuelta podría escapar de cada `--pipeline-dir` y leer un archivo YAML analizable arbitrario visible para el proceso de melange. Dado que el archivo cargado se interpreta posteriormente como un pipeline de melange y su bloque `runs:` se ejecuta mediante `/bin/sh -c` en el sandbox de compilación, esto también permitía que se ejecutaran comandos de shell originados en un archivo fuera del árbol de fuentes (out-of-tree) durante la compilación, eludiendo el límite de revisión que normalmente cubre la definición del pipeline dentro del árbol de fuentes (in-tree). El problema está corregido en melange v0.43.4 mediante el commit 5829ca4. La corrección rechaza los valores de `uses` que son rutas absolutas o que contienen `..`, y verifica (mediante `filepath.Rel` después de `filepath.Clean`) que el destino resuelto permanezca dentro del directorio del pipeline. Como medida de contención, ejecute `melange build` únicamente contra archivos de configuración de fuentes confiables. En sistemas de CI que construyen configuraciones de melange proporcionadas por el usuario, restrinja las compilaciones detrás de una revisión manual de los valores de `pipeline[].uses` y rechace cualquier valor que contenga `..` o que comience con `/`.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.