PT-2026-110651 · Hex · Hex
CVSS v4.0
7.5
Alta
| Vetor | AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
Nome do Software Vulnerável e Versões Afetadas
hex versões 0.6.0 até 2.5.1
Descrição
Um problema de path traversal existe onde um publicador de pacotes malicioso pode excluir um diretório fora do diretório
deps do projeto e extrair arquivos de pacotes nele quando um desenvolvedor busca dependências. Isso ocorre porque o Hex utiliza um rótulo app do registro assinado do repositório como o nome da aplicação da dependência sem a validação adequada nas funções Hex.RemoteConverger.deps/2 e Hex.Mix.to lock/1. O Mix define o diretório de checkout como deps/<app>, e a função Hex.SCM.update/1 executa File.rm rf!/1 nesse diretório antes de descompactar o pacote. Como o hex.pm valida apenas o comprimento do rótulo, um publicador pode usar valores como ../../target para atingir diretórios fora do escopo pretendido. Esse processo acontece durante o mix deps.get ou mix deps.update antes que qualquer código de dependência seja compilado, permitindo potencialmente que um invasor sobrescreva arquivos em diretórios nos quais a conta do desenvolvedor tem permissão de escrita, o que pode levar à execução de código.Recomendações
Atualize o hex para a versão 2.5.2 ou posterior usando
mix local.hex.
Como medida de mitigação temporária, antes de executar mix deps.get em um mix.lock de uma fonte não confiável, verifique se cada chave no mix.lock é um nome de aplicação simples e não contém os caracteres /, `` ou ...Exploit
Correção
Path traversal
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Hex