
PoC-эксплойт для CVE-2025-68999 - SQL-инъекция второго порядка в Happy Addons for Elementor <= 3.20.4
Happy Addons for Elementor <= 3.20.4 — Аутентифицированная (Contributor+) SQL-инъекция второго порядка
| CVSS | 8.5 ВЫСОКИЙ |
| Затронутые версии | <= 3.20.4 |
| Исправлено в | 3.20.6 |
| Минимальная роль | Contributor (edit_posts) |
| Вектор | Сеть / Низкая сложность / Низкие привилегии |
duplicate_meta_entries() в classes/clone-handler.php копирует строки мета-данных записи в клонированную запись с помощью самодельного массового INSERT. Он безопасно получает строки с помощью $wpdb->prepare(), но затем вставляет $entry->meta_key прямо в строку SQL без экранирования:
$_records[] = "( $duplicated_post_id, '{$entry->meta_key}', '{$_value}' )";
// ...
$wpdb->query( $query );
Поскольку meta_key берется из базы данных, код считает его доверенным. Но Contributor'ы могут задавать произвольные имена полей через панель Custom Fields — поэтому они контролируют, что находится в этом столбце.
Атака состоит из двух шагов:
add_post_meta() обрабатывает это безопасно — полезная нагрузка попадает в БД без выполнения чего-либо.duplicate_meta_entries() считывает ключ обратно и конкатенирует его в сырой INSERT. MySQL выполняет внедренный подзапрос.Статический анализ упускает это, потому что источник опасных данных — это чтение из БД ($wpdb->get_results()), которое механизмы отслеживания помечают как очищенное. Граница хранения разрывает цепочку отслеживания.
Любой Contributor может извлечь:
wp_options (ключи API, платежные реквизиты)Более 400 000 активных установок были затронуты на момент раскрытия.
pip install requests
python3 poc.py https://target.com contributor p4ss
Скрипт аутентифицируется через HTTP, сохраняет полезную нагрузку инъекции в качестве имени произвольного поля, запускает действие Happy Clone и считывает утекший хэш из мета-полей клонированной записи. Вывод сохраняется в hash.txt.
hashcat -m 400 hash.txt rockyou.txt
https://folks-iwd.github.io/writeups/cve-2025-68999.html
| Дата | Событие |
|---|---|
| Декабрь 2025 | Обнаружено через SVN diff. PoC подтвержден. |
| Декабрь 2025 | Сообщено в Patchstack Alliance с полным описанием и PoC. |
| Январь 2026 | weDevs выпустили исправление в v3.20.6. |
| 23 января 2026 | CVE-2025-68999 опубликован. Назначен CVSS 8.5 ВЫСОКИЙ. |
weDevs заменили весь самодельный INSERT на:
foreach ( $entries as $entry ) {
update_post_meta( $duplicated_post_id, $entry->meta_key, $entry->meta_value );
}
update_post_meta() внутри вызывает $wpdb->update() с подготовленными запросами как для ключа, так и для значения.