В плагине для онлайн-курсов LearnPress обнаружили сразу нескольких критических уязвимостей, в том числе, связанные с SQL-инъекциями перед аутентификацией и включением локальных файлов. Плагин используется более чем на 100 000 сайтов под управлением WordPress, а патчи пока установили лишь 25% владельцев ресурсов.
LearnPress представляет собой LMS-плагин, который позволяет WordPress-сайтам создавать и продавать онлайн-курсы, уроки и викторины, предлагая удобный интерфейс и не требуя от администраторов сайта знаний в области программирования и разработки.
Уязвимости в LearnPress были обнаружены специалистами PatchStack в период с 30 ноября по 2 декабря 2022 года, о чем исследователи сразу уведомили разработчиков плагина. Проблемы были устранены 20 декабря 2022 года с релизом LearnPress 4.2.0, однако, согласно статистике WordPress.org, пока исправления установили лишь 25% от общего числа сайтов. То есть примерно 75 000 ресурсов по-прежнему используют уязвимые версии LearnPress, подвергаясь серьезным рискам.
Первой уязвимостью, обнаруженной экспертами PatchStack, стала CVE-2022-47615, ошибка включения локальных файлов (local file inclusion) без аутентификации, которая позволяет злоумышленникам видеть содержимое локальных файлов, хранящихся на веб-сервере. Этот баг может привести к раскрытию учетных данных, токенов авторизации и ключей API, что приведет к дальнейшей компрометации.
Второй критический баг (CVE-2022-45808) представляет собой SQL-инъекцию без аутентификации, которая может вести к раскрытию конфиденциальной информации, изменению данных и выполнению произвольного кода. Эта уязвимость связана с функцией, которая обрабатывает SQL-запросы сайта, она неправильно очищает и проверяет переменную $filter в параметрах запроса, что позволяет злоумышленнику внедрить в нее вредоносный код.
Третьей уязвимостью, затрагивающей более старые версии LearnPress, стала CVE-2022-45820. Это еще одна SQL-инъекция (на этот раз после аутентификации), найденная в двух шорткодах плагина (learn_press_recent_courses и learn_press_featured_courses). Баг не позволяет должным образом проверить и очистить ввод переменной $args.
К счастью, эксплуатация этой уязвимости ограничена тем фактом, что для осуществления атаки злоумышленник должен обладать правами для редактирования или создания новых записей в блоге.
Всем владельцам сайтов, использующим LearnPress, рекомендуется как можно скорее обновиться до версии 4.2.0, либо отключить плагин вовсе, до тех пор, пока они не смогут установить патч.