
Ejecución remota de código en Mediawiki Score
ID de CVE: CVE-2020-29007
Nombre del/los producto(s) afectado(s) y versión(es): Mediawiki Score (todas las versiones hasta la 0.3.0)
Tipo de problema: CWE-96: Neutralización incorrecta de directivas en código guardado estáticamente (‘Inyección de código estático’)
Resumen
Score es una extensión de Mediawiki que genera notación musical basada en marcado Lilypond o ABC proporcionado por el usuario. Durante nuestras pruebas, hemos determinado que es vulnerable a la ejecución remota de código a través de código Scheme incrustado en el marcado de Lilypond.
Todas las versiones de Score (hasta la 0.3.0 inclusive) permiten la ejecución de código arbitrario controlado por el usuario dentro del contexto de un proceso de servidor web.
Descripción
La extensión Score genera notación musical pasando marcado Lilypond o ABC controlado por el usuario a un binario de GNU Lilypond. Debido a que el binario se ejecuta sin la opción -dsafe, ejecutará código Scheme Guile arbitrario incrustado dentro del marcado de Lilypond, incluido el código que interactúa con el shell del sistema operativo.
Para explotar esta vulnerabilidad, el atacante debe poder editar cualquier artículo en el wiki vulnerable. En la mayoría de las configuraciones, debería ser posible para el atacante no autenticado.
Reproducción
Comience a editar cualquier artículo en un wiki.
Reemplace el contenido del artículo con el siguiente código:
{{Image frame|content=\new Staff <<{g^#
(number->string(system "/usr/bin/false"))
}>>}}
Haga clic en ‘mostrar vista previa’
Si la salida contiene una imagen que se ve así, el wiki es vulnerable:

Mitigación
Deshabilite la extensión Score.