
Remotecodeausführung in Mediawiki Score
CVEID: CVE-2020-29007
Name der betroffenen Produkte und Versionen: Mediawiki Score (alle Versionen bis einschließlich 0.3.0)
Problemtyp: CWE-96: Unzureichende Neutralisierung von Anweisungen in statisch gespeichertem Code (‘Static Code Injection’)
Zusammenfassung
Score ist eine Mediawiki-Erweiterung, die musikalische Notation basierend auf vom Benutzer bereitgestelltem Lilypond- oder ABC-Markup erzeugt. In unseren Tests haben wir festgestellt, dass es anfällig ist für Remote-Code-Ausführung durch Scheme-Code, der in Lilypond-Markup eingebettet ist.
Alle Versionen von Score (bis einschließlich 0.3.0) erlauben die Ausführung von willkürlichem benutzerkontrolliertem Code im Kontext eines Webserver-Prozesses.
Beschreibung
Die Score-Erweiterung erzeugt musikalische Notation, indem sie vom Benutzer kontrolliertes Lilypond- oder ABC-Markup an eine GNU Lilypond-Binärdatei übergibt. Da die Binärdatei ohne die Option -dsafe ausgeführt wird, führt sie willkürlichen Guile-Scheme-Code aus, der in Lilypond-Markup eingebettet ist, einschließlich des Codes, der mit der Betriebssystem-Shell interagiert.
Um diese Schwachstelle auszunutzen, muss der Angreifer in der Lage sein, einen beliebigen Artikel auf dem verwundbaren Wiki zu bearbeiten. In den meisten Konfigurationen sollte dies für den nicht authentifizierten Angreifer möglich sein.
Reproduktion
Beginnen Sie mit der Bearbeitung eines beliebigen Artikels in einem Wiki.
Ersetzen Sie den Inhalt des Artikels durch den folgenden Code:
{{Image frame|content=\new Staff <<{g^#
(number->string(system "/usr/bin/false"))
}>>}}
Klicken Sie auf ‘Vorschau anzeigen’
Wenn die Ausgabe ein Bild enthält, das so aussieht, ist das Wiki verwundbar:

Gegenmaßnahmen
Deaktivieren Sie die Score-Erweiterung.