
Remote code execution in Mediawiki Score
Идентификатор CVE: CVE-2020-29007
Название затронутого продукта и версии: Mediawiki Score (все версии до 0.3.0)
Тип проблемы: CWE-96: Неправильная нейтрализация директив в статически сохранённом коде («Статическая инъекция кода»)
Сводка
Score — это расширение Mediawiki, которое генерирует нотную запись на основе предоставленного пользователем разметки Lilypond или ABC. В ходе тестирования мы установили, что оно уязвимо для удалённого выполнения кода через код Scheme, внедрённый в разметку Lilypond.
Все версии Score (вплоть до и включая 0.3.0) позволяют выполнять произвольный управляемый пользователем код в контексте процесса веб-сервера.
Описание
Расширение Score генерирует нотную запись, передавая управляемую пользователем разметку Lilypond или ABC бинарному файлу GNU Lilypond. Поскольку бинарный файл выполняется без опции -dsafe, он выполнит произвольный код Guile Scheme, внедрённый в разметку Lilypond, включая код, взаимодействующий с оболочкой операционной системы.
Для эксплуатации этой уязвимости злоумышленник должен иметь возможность редактировать любую статью на уязвимой вики. В большинстве конфигураций это должно быть возможно для неаутентифицированного злоумышленника.
Воспроизведение
Начните редактировать любую статью на вики.
Замените содержимое статьи следующим кодом:
{{Image frame|content=\new Staff <<{g^#
(number->string(system "/usr/bin/false"))
}>>}}
Нажмите ‘показать предварительный просмотр’
Если вывод содержит изображение, которое выглядит так, вики уязвима:

Смягчение
Отключите расширение Score.