
Advanced Custom Fields: Extended <= 0.9.2.5 - Неавторизованное повышение привилегий через обход проверки к параметру '_acf_post_id'
Advanced Custom Fields: Extended <= 0.9.2.5 - Неаутентифицированное повышение привилегий через обход проверки параметра '_acf_post_id' Эта критическая уязвимость безопасности (CVSS 9.8) затрагивает все версии популярного плагина WordPress Advanced Custom Fields: Extended (ACF Extended) начиная с версии 0.9.2.5.
Хотя исправлено в версии 0.9.2.6, уязвимость работает следующим образом:
Проблемная функция: В основе уязвимости лежит неконтролируемое доверие, которое функция after_validate_save_post() оказывает POST-параметру с именем _acf_post_id. Плагин не подвергает этот параметр какой-либо проверке или процессу аутентификации.
Обход проверки: Манипулируя параметром _acf_post_id, злоумышленник заставляет функцию молча выбрать ветвь очистки, которая игнорирует все ошибки проверки, не содержащие префикс "acfe:". Это отключает две критически важные проверки безопасности:
Ошибка защиты привилегий администратора, добавленная acfe_module_form_action_user::validate_action()).
Неавторизованное создание администратора: После обхода этих проверок выполняется функция wp_insert_user() с аргументом роли "administrator", предоставленным злоумышленником. В результате неаутентифицированный пользователь создает новую учетную запись администратора в системе, что противоречит назначению плагина.
Логика работы эксплойта Следующий скрипт Python является доказательством концепции, демонстрирующим, как можно использовать эту уязвимость. Код работает путем автоматизации всех необходимых шагов.