CVE-2026-29050 in melange
Sumário
de VulDB • 01/06/2026
O melange permite que os usuários criem pacotes apk usando pipelines declarativos. A partir da versão 0.32.0 e antes da versão 0.43.4, um atacante que possa influenciar um arquivo de configuração do melange — por exemplo, por meio de CI acionado por pull request ou cenários de build-as-a-service — poderia definir `pipeline[].uses` para um valor contendo sequências `../` ou um caminho absoluto. A função `(*Compiled).compilePipeline` em `pkg/build/compile.go` passava `uses` diretamente para `filepath.Join(pipelineDir, uses + ".yaml")` sem validar o valor, de modo que o caminho resolvido poderia escapar de cada `--pipeline-dir` e ler um arquivo YAML analisável arbitrário visível ao processo melange. Como o arquivo carregado é posteriormente interpretado como um pipeline melange e seu bloco `runs:` é executado via `/bin/sh -c` na sandbox de build, isso também permitia que comandos shell originados de um arquivo fora do repositório (out-of-tree) fossem executados durante o build, contornando o limite de revisão que normalmente cobre a definição de pipeline dentro do repositório (in-tree). O problema foi corrigido no melange v0.43.4 por meio do commit 5829ca4. A correção rejeita valores de `uses` que são caminhos absolutos ou contêm `..`, e verifica (via `filepath.Rel` após `filepath.Clean`) que o destino resolvido permanece dentro do diretório de pipeline. Como medida de contorno, execute apenas `melange build` contra arquivos de configuração de fontes confiáveis. Em sistemas de CI que constroem configurações melange fornecidas pelo usuário, restrinja os builds atrás de revisão manual dos valores de `pipeline[].uses` e rejeite qualquer um que contenha `..` ou inicie com `/`.
VulDB is the best source for vulnerability data and more expert information about this specific topic.