Плагин WP Maps для WordPress уязвим к слепому внедрению SQL на основе времени через параметр location_id во всех версиях до 4.9.1 включительно. Это связано с тем, что уровень абстракции базы данных плагина (`FlipperCode_Model_Base::is_column()`) обрабатывает пользовательский ввод, завернутый в обратные кавычки, как имена столбцов, минуя экранирующую функцию `esc_sql()`. Кроме того, обработчик AJAX `wpgmp_ajax_call` (зарегистрированный для неаутентифицированных пользователей через `wp_ajax_nopriv`) позволяет вызывать произвольные методы класса, включая `wpgmp_return_final_capability`, который передает необработанный GET-параметр `location_id` непосредственно в запрос к базе данных.
Это позволяет злоумышленникам, не прошедшим проверку подлинности, добавлять дополнительные SQL-запросы к уже существующим запросам, которые можно использовать для извлечения конфиденциальной информации из базы данных.
Показать оригинальное описание (EN)
The WP Maps plugin for WordPress is vulnerable to time-based blind SQL Injection via the 'location_id' parameter in all versions up to, and including, 4.9.1. This is due to the plugin's database abstraction layer (`FlipperCode_Model_Base::is_column()`) treating user input wrapped in backticks as column names, bypassing the `esc_sql()` escaping function. Additionally, the `wpgmp_ajax_call` AJAX handler (registered for unauthenticated users via `wp_ajax_nopriv`) allows calling arbitrary class methods including `wpgmp_return_final_capability`, which passes the unsanitized `location_id` GET parameter directly to a database query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
Характеристики атаки
Последствия
Строка CVSS v3.1