CVE-2026-29050 in melange
Résumé
par VulDB • 02/06/2026
melange permet aux utilisateurs de créer des paquets apk à l'aide de pipelines déclaratifs. À partir de la version 0.32.0 et avant la version 0.43.4, un attaquant capable d'influencer un fichier de configuration melange — par exemple via des pipelines CI déclenchés par des pull requests ou dans des scénarios de build-as-a-service — pourrait définir `pipeline[].uses` avec une valeur contenant des séquences `../` ou un chemin absolu. La fonction `(*Compiled).compilePipeline` dans `pkg/build/compile.go` transmettait `uses` directement à `filepath.Join(pipelineDir, uses + ".yaml")` sans valider la valeur, ce qui permettait au chemin résolu de s'échapper de chaque `--pipeline-dir` et de lire un fichier YAML analysable arbitraire visible par le processus melange. Étant donné que le fichier chargé est ensuite interprété comme un pipeline melange et que son bloc `runs:` est exécuté via `/bin/sh -c` dans le bac à sable de build, cela permettait également l'exécution de commandes shell issues d'un fichier hors de l'arborescence principale (out-of-tree) pendant le build, contournant ainsi la limite de revue qui couvre normalement la définition du pipeline dans l'arborescence principale (in-tree). Le problème est corrigé dans melange v0.43.4 via le commit 5829ca4. La correction rejette les valeurs `uses` qui sont des chemins absolus ou qui contiennent `..`, et vérifie (via `filepath.Rel` après `filepath.Clean`) que la cible résolue reste dans le répertoire des pipelines. En attendant, comme solution de contournement, exécutez uniquement `melange build` contre des fichiers de configuration provenant de sources de confiance. Dans les systèmes CI qui construisent des configurations melange fournies par les utilisateurs, restreignez les builds derrière une revue manuelle des valeurs `pipeline[].uses` et rejetez toute valeur contenant `..` ou commençant par `/`.
If you want to get best quality of vulnerability data, you may have to visit VulDB.