
Remote code execution in Mediawiki Score
CVEID: CVE-2020-29007
Nom du/des produit(s) et version(s) concerné(s): Mediawiki Score (toutes les versions jusqu'à 0.3.0)
Type de problème: CWE-96: Neutralisation incorrecte des directives dans du code sauvegardé statiquement (« Injection de code statique »)
Résumé
Score est une extension Mediawiki qui génère une notation musicale à partir de balises Lilypond ou ABC fournies par l'utilisateur. Lors de nos tests, nous avons déterminé qu'elle est vulnérable à l'exécution de code à distance via du code Scheme intégré dans les balises Lilypond.
Toutes les versions de Score (jusqu'à et y compris 0.3.0) permettent l'exécution de code arbitraire contrôlé par l'utilisateur dans le contexte d'un processus serveur web.
Description
L'extension Score génère une notation musicale en passant des balises Lilypond ou ABC contrôlées par l'utilisateur à un binaire GNU Lilypond. Comme le binaire est exécuté sans l'option -dsafe, il exécutera tout code Guile Scheme arbitraire intégré dans les balises Lilypond, y compris le code qui interagit avec le shell du système d'exploitation.
Pour exploiter cette vulnérabilité, l'attaquant doit être capable d'éditer n'importe quel article sur le wiki vulnérable. Dans la plupart des configurations, cela devrait être possible pour un attaquant non authentifié.
Reproduction
Commencez à éditer un article quelconque sur un wiki.
Remplacez le contenu de l'article par le code suivant :
{{Image frame|content=\new Staff <<{g^#
(number->string(system "/usr/bin/false"))
}>>}}
Cliquez sur « Afficher l'aperçu »
Si le résultat contient une image qui ressemble à ceci, le wiki est vulnérable :

Mitigation
Désactivez l'extension Score.