
Execução remota de código no Mediawiki Score
CVEID: CVE-2020-29007
Nome do(s) produto(s) afetado(s) e versão(ões): Mediawiki Score (todas as versões até 0.3.0)
Tipo de problema: CWE-96: Neutralização Incorreta de Diretivas em Código Staticamente Salvo (‘Injeção de Código Estático’)
Resumo
Score é uma extensão do Mediawiki que gera notação musical com base em marcação Lilypond ou ABC fornecida pelo usuário. Durante nossos testes, determinamos que ela é vulnerável a execução remota de código por meio de código Scheme embutido em marcação Lilypond.
Todas as versões do Score (até e incluindo a 0.3.0) permitem a execução de código arbitrário controlado pelo usuário dentro do contexto de um processo do servidor web.
Descrição
A extensão Score gera notação musical passando marcação Lilypond ou ABC controlada pelo usuário para um binário GNU Lilypond. Como o binário é executado sem a opção -dsafe, ele executará código Guile Scheme arbitrário embutido dentro da marcação Lilypond, incluindo o código que interage com o shell do sistema operacional.
Para explorar essa vulnerabilidade, o atacante deve ser capaz de editar qualquer artigo na wiki vulnerável. Na maioria das configurações, isso deve ser possível para o atacante não autenticado.
Reprodução
Comece editando qualquer artigo em uma wiki.
Substitua o conteúdo do artigo pelo seguinte código:
{{Image frame|content=\new Staff <<{g^#
(number->string(system "/usr/bin/false"))
}>>}}
Clique em ‘mostrar pré-visualização’
Se a saída contiver uma imagem parecida com esta, a wiki está vulnerável:

Mitigação
Desative a extensão Score.