
Эксплуатация и анализ CVE-2023-3460 — критического повышения привилегий в плагине Ultimate Member для WordPress, с средой воспроизведения и рекомендациями по смягчению последствий.
| CVE ID | CVSS Score | Discovered | Affected Plugin | Vulnerability Type |
|---|---|---|---|---|
| CVE-2023-3460 | 07/04/2023 | Ultimate Member | Несанкционированный доступ администратора |
Данное исследование посвящено CVE¹-2023-3460 — критической уязвимости, затрагивающей плагин "Ultimate Member" для WordPress, которая позволяет несанкционированное повышение привилегий. Этот плагин широко распространён и используется для управления профилями на сайтах WordPress. Данная уязвимость представляет серьёзный риск, поскольку позволяет атакующему получить права администратора и, следовательно, полный контроль над сайтом. Именно поэтому эта ошибка была классифицирована как критическая и оценена в 9.1 балла по шкале CVSS организацией NIST².
CVE-2023-3460 эксплуатирует ошибку в управлении ролями и разрешениями плагином. В WordPress функция WP_Capabilities³ используется для управления ролями и разрешениями пользователей. Эта функция позволяет администраторам определять конкретные возможности для каждой роли пользователя. Однако неправильное использование этой функции может привести к уязвимостям повышения привилегий.
В случае Ultimate Member уязвимость позволяет атакующему обойти проверку возможностей WP и получить доступ уровня администратора к сайту. Плагин работает, используя предопределённый список ключей метаданных пользователя, которыми не должны манипулировать пользователи. Однако такой подход к безопасности, основанный на списках блокировки, часто оказывается недостаточным, поскольку оставляет возможности для обхода.
WordPress управляет ролями и разрешениями пользователей через структуру, называемую wp_capabilities. Эта структура представляет собой сериализованное представление различных ролей и разрешений, предоставленных пользователям. Например, администратор будет иметь иной набор возможностей, чем редактор или автор. Эти возможности хранятся в базе данных WordPress в виде сериализованных массивов в таблице wp_usermeta.
Ошибка CVE-2023-3460 берёт своё начало в реализации управления ролями и разрешениями в Ultimate Member. Плагин работает, используя предопределённый список ключей метаданных пользователя, которыми пользователи не должны манипулировать. Этот список используется для проверки того, пытаются ли пользователи сохранить эти ключи при создании учётной записи. Такой подход является распространённым анти-паттерном безопасности, когда блокировка известных вредоносных входных данных (списки блокировки) может казаться интуитивно понятной, но на деле оказывается сложнее, чем ожидалось, и часто оставляет возможности для обхода безопасности.
Здесь Ultimate Member использует недостаточную проверку метаданных, отправляемых при регистрации пользователей. Плагин использует функцию под названием is_metakey_banned для проверки того, разрешены ли метаданные, отправленные пользователем. Эта функция проверяет, присутствуют ли отправленные метаданные в списке запрещённых метаданных. Если это так, функция возвращает true, и регистрация пользователя блокируется. В противном случае функция возвращает false, и регистрация пользователя разрешается.
Однако WordPress принимает некоторые символы с диакритическими знаками как символы по умолчанию. Если пользователь отправляет метаданные с символами с диакритическими знаками, функция is_metakey_banned не обнаружит их, и регистрация пользователя будет разрешена.
Плагин Ultimate Member широко используется в различных средах — от небольших личных блогов до крупных сайтов электронной коммерции. Нельзя сделать никаких конкретных допущений о навыках в области компьютерной безопасности конечных пользователей или администраторов сайтов.
Серверы, размещающие сайты WordPress, обычно расположены в защищённых центрах обработки данных. Для личных сайтов физическая безопасность зависит от индивидуального окружения пользователя.
Предполагается, что плагин Ultimate Member установлен и настроен правильно в соответствии с официальными инструкциями. Предполагается, что сайт WordPress поддерживается в актуальном состоянии с базовыми мерами безопасности.
| Угрозы | B1 (Конфиденциальность данных пользователей) | B2 (Целостность веб-сайта) | B3 (Целостность плагина Ultimate Member) |
|---|---|---|---|
| M1 Несанкционированный доступ | X | X | X |
| M2 Внедрение вредоносного кода | X | X | |
| M3 Утечка данных | X | ||
| M4 Ущерб репутации | X |
7.5 Функции безопасности