
Esecuzione di codice in remoto in Mediawiki Score
CVEID: CVE-2020-29007
Nome del prodotto interessato e versioni: Mediawiki Score (tutte le versioni fino alla 0.3.0)
Tipo di problema: CWE-96: Neutralizzazione impropria delle direttive nel codice salvato staticamente (‘Static Code Injection’)
Riepilogo
Score è un'estensione di Mediawiki che genera notazione musicale basata sul markup Lilypond o ABC fornito dall'utente. Durante i nostri test, abbiamo determinato che è vulnerabile all'esecuzione remota di codice tramite codice Scheme incorporato nel markup Lilypond.
Tutte le versioni di Score (fino alla 0.3.0 inclusa) consentono l'esecuzione di codice arbitrario controllato dall'utente nel contesto di un processo del server web.
Descrizione
L'estensione Score genera notazione musicale passando markup Lilypond o ABC controllato dall'utente a un binario GNU Lilypond. Poiché il binario viene eseguito senza l'opzione -dsafe, eseguirà codice Guile Scheme arbitrario incorporato nel markup Lilypond, incluso il codice che interagisce con la shell del sistema operativo.
Per sfruttare questa vulnerabilità, l'attaccante deve essere in grado di modificare qualsiasi articolo sul wiki vulnerabile. Nella maggior parte delle configurazioni, questo dovrebbe essere possibile anche per un attaccante non autenticato.
Riproduzione
Inizia a modificare un qualsiasi articolo su un wiki.
Sostituisci il contenuto dell'articolo con il seguente codice:
{{Image frame|content=\new Staff <<{g^#
(number->string(system "/usr/bin/false"))
}>>}}
Fai clic su ‘mostra anteprima’
Se l'output contiene un'immagine simile a questa, il wiki è vulnerabile:

Mitigazione
Disabilita l'estensione Score.