Плагин Slider Hero для WordPress уязвим к SQL-инъекции второго порядка в версиях до 9.1.7 включительно через функцию qcld_sliderhero_duulate(). Данные слайда (описание, заголовок, btn, btn2, image_link, custom и т. д.) безопасно сохраняются с помощью $wpdb->update() с заполнителями %s в обработчике AJAX qchero_save_image, но когда администратор запускает задачу «heroduulateslider», qcld_sliderhero_duulate() перечитывает каждый столбец слайда и объединяет необработанные значения непосредственно во INSERT. Кортеж VALUES, который затем выполняется с помощью $wpdb->query() — без промежуточных $wpdb->prepare(), esc_sql() или _real_escape_string.
Это позволяет злоумышленникам, прошедшим проверку подлинности, с доступом на уровне администратора и выше, добавлять дополнительные SQL-запросы к уже существующим запросам, которые можно использовать для извлечения конфиденциальной информации из базы данных.
Показать оригинальное описание (EN)
The Slider Hero plugin for WordPress is vulnerable to second-order SQL Injection in versions up to, and including, 9.1.7 via the qcld_sliderhero_duplicate() function. Slide data (description, title, btn, btn2, image_link, custom, etc.) is stored safely via $wpdb->update() with %s placeholders in the qchero_save_image AJAX handler, but when an administrator triggers the 'heroduplicateslider' task, qcld_sliderhero_duplicate() re-reads every slide column and concatenates the raw values directly into an INSERT VALUES tuple that is then executed with $wpdb->query() — with no $wpdb->prepare(), esc_sql(), or _real_escape_string in between. This makes it possible for authenticated attackers, with administrator-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
Характеристики атаки
Последствия
Строка CVSS v3.1