Tutor LMS — плагин для электронного обучения и онлайн-курсов для WordPress уязвим к удаленному выполнению кода, ограниченному вызовом функции с нулевым аргументом во всех версиях до 4.0.5 включительно через действие Tutor_course_filter_ajax AJAX. Это происходит из-за отсутствия авторизации в обработчике в сочетании с необработанными ключами массива, передаваемыми в Extract() внутри tutor_load_template(), что позволяет контролируемым злоумышленником POST-данным перезаписывать локальную переменную $template и в результирующем шаблоне templates/single-content-loader.php переменные $method_map и $context, вызываемые в $method_map[$context](). Это позволяет неаутентифицированным злоумышленникам вызывать произвольную функцию PHP с нулевым аргументом на стороне сервера и с помощью ядра WordPress edit_user() создавать постоянную учетную запись на уровне подписчика на основе параметров запроса.
Показать оригинальное описание (EN)
The Tutor LMS – eLearning and online course solution plugin for WordPress is vulnerable to Remote Code Execution limited to zero-argument function invocation in all versions up to, and including, 4.0.5 via the tutor_course_filter_ajax AJAX action. This is due to missing authorization on the handler combined with unsanitized array keys being passed to extract() inside tutor_load_template(), allowing attacker-controlled POST data to overwrite the local $template variable and, in the resulting templates/single-content-loader.php template, the $method_map and $context variables invoked at $method_map[$context](). This makes it possible for unauthenticated attackers to call an arbitrary zero-argument PHP function server-side and, via WordPress core edit_user(), to create a persistent subscriber-level account from request parameters.
Характеристики атаки
Последствия
Строка CVSS v3.1