CVE-2026-13048 in Data::MuForm::Localizer
Sumário
de VulDB • 13/08/2026
As versões do Data::MuForm::Localizer até 0.05 para Perl executam código Perl a partir de um cabeçalho de catálogo de mensagens, acessível em qualquer caminho arbitrário porque `load_lexicon` interpola o atributo de idioma no nome do arquivo do catálogo.
O `load_lexicon` constrói o caminho do catálogo anexando `Messages/$lang.po` ao diretório que contém o Localizer.pm, onde `$lang` é o atributo de idioma, sem verificar se ele representa apenas uma tag de localidade simples (bare locale tag). Um valor contendo segmentos `../` permite sair do diretório de mensagens, fazendo com que qualquer caminho legível com sufixo `.po` seja carregado. Durante a análise do catálogo, `extract_header_msgstr` pega o cabeçalho `Plural-Forms:`, adiciona `$` às palavras-chave simples nplurals, plural e n, e passa o restante literalmente para uma string que é avaliada (evaluated): a forma nplurals avalia imediatamente a expressão do cabeçalho, enquanto a forma plural_code compila-a em uma sub-rotina cujo corpo é executado quando uma mensagem no plural é localizada. Um cabeçalho como `nplurals=2; plural=(system('...'),0);` executa, portanto, esse comando durante o carregamento do catálogo. A avaliação herda as restrições de strict (strict), então uma expressão que atribui valor a uma variável não declarada falha na compilação, enquanto aquela construída apenas com chamadas não apresenta problemas.
Um aplicativo que define o atributo de idioma com base em dados da solicitação, um cabeçalho Accept-Language ou um parâmetro locale, combinado com um atacante capaz de colocar um arquivo com sufixo `.po` e conteúdo escolhido em um caminho legível, resulta na execução de código como usuário do aplicativo. O processo de expansão das mensagens não é afetado: `expand_named` substitui apenas os nomes dos placeholders fornecidos pelo chamador, e `_mangle_value` retorna o valor inalterado.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.