Было обнаружено, что плагин WPCode — Insert Headers and Footers + Custom Code Snippets для WordPress с более чем миллионом установок имеет уязвимость, которая позволяет злоумышленнику удалять файлы на сервере.
Предупреждение об уязвимости было размещено в Национальной базе данных уязвимостей правительства США (NVD).
Содержание
Плагин вставки верхних и нижних колонтитулов
Плагин WPCode (ранее известный как Insert Headers and Footers by WPBeginner) — это популярный плагин, который позволяет издателям WordPress добавлять фрагменты кода в область верхнего и нижнего колонтитула.
Это полезно для издателей, которым необходимо добавить код проверки сайта Google Search Console, код CSS, структурированные данные, даже код AdSense, практически все, что относится к верхнему или нижнему колонтитулу веб-сайта.
Уязвимость межсайтовой подделки запросов (CSRF)
Плагин WPCode — Insert headers and Footers до версии 2.0.9 содержит то, что было определено как уязвимость межсайтовой подделки запросов (CSRF).
Атака CSRF основана на обмане конечного пользователя, зарегистрированного на сайте WordPress, чтобы он щелкнул ссылку, которая выполняет нежелательное действие.
Злоумышленник в основном использует учетные данные зарегистрированного пользователя для выполнения действий на сайте, на котором зарегистрирован пользователь.
Когда вошедший в систему пользователь WordPress щелкает ссылку, содержащую вредоносный запрос, сайт обязан выполнить запрос, поскольку он использует браузер с файлами cookie, которые правильно идентифицируют пользователя как вошедшего в систему.
Злоумышленник рассчитывает именно на вредоносное действие, которое выполняет зарегистрированный пользователь, сам того не зная.
Некоммерческий проект Open Worldwide Application Security Project (OWASP) описывает уязвимость CSRF:
«Подделка межсайтовых запросов (CSRF) — это атака, которая заставляет конечного пользователя выполнять нежелательные действия в веб-приложении, в котором он в настоящее время аутентифицирован.
С небольшой помощью социальной инженерии (например, отправив ссылку по электронной почте или в чат) злоумышленник может обманом заставить пользователей веб-приложения выполнить действия по выбору злоумышленника.
Если жертва является обычным пользователем, успешная атака CSRF может заставить пользователя выполнять запросы на изменение состояния, такие как перевод средств, изменение адреса электронной почты и т. д.
Если жертва является административной учетной записью, CSRF может скомпрометировать все веб-приложение».
Общее перечисление слабых сторон (CWE), который спонсируется Министерством внутренней безопасности США, предлагает определение такого типа CSRF:
«Веб-приложение не выполняет или не может в достаточной мере проверить, был ли правильно сформированный, действительный, непротиворечивый запрос намеренно предоставлен пользователем, отправившим запрос.
… Когда веб-сервер предназначен для получения запроса от клиента без какого-либо механизма проверки того, что он был отправлен намеренно, злоумышленник может обманом заставить клиента сделать непреднамеренный запрос к веб-серверу, который будет обработан. как подлинный запрос.
Это можно сделать с помощью URL-адреса, загрузки изображения, XMLHttpRequest и т. д., что может привести к раскрытию данных или непреднамеренному выполнению кода».
В данном конкретном случае нежелательные действия ограничиваются удалением лог-файлов.
Национальная база данных уязвимостей опубликовала подробности об уязвимости:
«Плагин WPCode WordPress до версии 2.0.9 имеет ошибочный CSRF при удалении журнала и не гарантирует, что удаляемый файл находится в ожидаемой папке.
Это может позволить злоумышленникам заставить пользователей с возможностью wpcode_activate_snippets удалять произвольные файлы журналов на сервере, в том числе за пределами папок блога».
Веб-сайт WPScan (принадлежащий Automattic) опубликовал доказательство концепции уязвимости.
Доказательство концепции в этом контексте — это код, который проверяет и демонстрирует, что уязвимость может работать.
"Make a logged in user with the wpcode_activate_snippets capability open the URL below This will make them delete the ~/wp-content/delete-me.log"
Вторая уязвимость на 2023 год
Это вторая уязвимость, обнаруженная в 2023 году для плагина WPCode Insert Headers and Footers.
В феврале 2023 года была обнаружена еще одна уязвимость, затрагивающая версии 2.0.6 или ниже, которую компания по обеспечению безопасности Wordfence WordPress описала как уязвимость. «Отсутствует авторизация на раскрытие/обновление конфиденциального ключа».
Согласно отчету об уязвимостях NVD, уязвимость затрагивала также версии до 2.0.7.
НВД предупрежден предыдущей уязвимости:
«Плагин WPCode WordPress до версии 2.0.7 не имеет адекватной проверки привилегий для нескольких действий AJAX, а проверяет только одноразовый номер.
Это может привести к тому, что любой аутентифицированный пользователь, который может редактировать сообщения, может вызывать конечные точки, связанные с аутентификацией библиотеки WPCode (например, обновлять и удалять ключ аутентификации)».
WPcode выпустил патч безопасности
Журнал изменений для плагина WPCode — Insert Headers and Footers WordPress ответственно отмечает, что они исправили проблему безопасности.
А запись журнала изменений для обновления версии 2.0.9 состояния:
«Исправлено: усиление безопасности для удаления журналов».
Обозначение журнала изменений важно, потому что оно предупреждает пользователей плагина о содержании обновления и позволяет им принять обоснованное решение о том, продолжать ли обновление или подождать до следующего.
WPCode действовал ответственно, своевременно отреагировав на обнаружение уязвимости, а также отметив исправление безопасности в журнале изменений.
Рекомендуемые действия
Пользователям плагина WPCode — Insert headers and Footers рекомендуется обновить свой плагин как минимум до версии 2.0.9.
Самая последняя версия плагина — 2.0.10.
Читайте об уязвимости на сайте NVD: