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-10818 — WPForms Pro <= 1.10.1.1 - Écriture de fichier arbitraire non authentifiée via l'ordre d'initialisation/finalisation du téléversement fragmenté | Kitploit
Outils/GitHubGitHub/nxploited/cve-2026-10818
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'Intrusion
GitHubnxploited/cve-2026-10818

CVE-2026-10818

WPForms Pro <= 1.10.1.1 - Écriture de fichier arbitraire non authentifiée via l'ordre d'initialisation/finalisation du téléversement fragmenté

Voir le dépôt
32il y a 1 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-10818

WPForms Pro <= 1.10.1.1 - Écriture arbitraire de fichier non authentifiée via l'ordonnancement Init/Finalize du téléversement par fragments

CVE CVSS CWE Python

CVE-2026-10818

WPForms Pro ≤ 1.10.1.1 — Écriture arbitraire de fichier non authentifiée via le téléversement par fragments

Exploit de preuve de concept
Ordonnancement Init/Finalize du téléversement par fragments → Exposition d'un chemin prévisible → Exécution de code à distance


Présentation de la vulnérabilité

ChampDétail
ID CVECVE-2026-10818
Plugin concernéWPForms Pro (WordPress)
Versions concernéesToutes les versions jusqu'à 1.10.1.1 incluse
TypeÉcriture arbitraire de fichier non authentifiée
CWECWE-434 : Téléversement sans restriction d'un fichier de type dangereux
CVSS 3.18.1 ÉLEVÉ — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
AuthentificationAucune requise

Le plugin WPForms Pro pour WordPress est vulnérable au téléversement arbitraire de fichiers dans toutes les versions jusqu'à la 1.10.1.1 incluse, via la fonction ajax_chunk_upload_finalize. Cela est dû au fait que la validation du type de fichier intervient après que les métadonnées des fragments et le contenu des fichiers ont déjà été écrits sur le disque, et que le fichier assemblé n'est pas supprimé en cas d'échec de la validation. Il est ainsi possible pour des attaquants non authentifiés de téléverser des fichiers potentiellement exécutables, ce qui rend possible l'exécution de code à distance.

Cause racine

root@kitploit:~
wpforms_upload_chunk_init     →  Metadata created BEFORE extension validation
wpforms_upload_chunk          →  Chunk bytes written regardless of init result
wpforms_file_chunks_uploaded  →  File assembled BEFORE type validation
                              →  File persists on disk even when validation fails

La chaîne de vulnérabilité exploite un défaut d'ordonnancement critique dans le cycle de vie du téléversement par fragments :

  1. Init crée les métadonnées sur le disque avant de vérifier si l'extension du fichier est autorisée
  2. Chunk charge les métadonnées et écrit les octets bruts vers un chemin prévisible (SHA1(UUID)-0.chunk)
  3. Finalize assemble le fichier final avant de valider son type MIME — et ne nettoie pas en cas d'échec
  4. Aucune vérification de nonce n'est appliquée sur les trois points de terminaison AJAX
  5. Les trois routes sont enregistrées pour les visiteurs non authentifiés (wp_ajax_nopriv_*)

Fonctionnalités

  • Scan multi-cibles — alimentez une liste de cibles, traitée en parallèle
  • Découverte automatique de formulaires — parcourt les pages, les sitemaps et plus de 100 chemins courants pour localiser les champs de téléversement WPForms
  • Détection de version — lit readme.txt et le code source HTML pour identifier les versions vulnérables de WPForms
  • Validation des routes AJAX — confirme que wpforms_upload_chunk_init est accessible depuis l'extérieur avant de continuer
  • Stratégie de téléversement double :
    • Téléversements finalisés (init → chunk → finalize) avec des extensions à la fois sûres et exécutables
    • Téléversements de fragments uniquement (init → chunk, sans finalize) pour des chemins de fichiers déterministes via SHA1(UUID)
  • Calcul de chemin prévisible — calcule SHA1(UUID contrôlé par le client) pour dériver l'URL exacte du fragment sans avoir à deviner
  • Diff de contenu de répertoire — prend des instantanés de /wpforms/tmp/ avant et après les téléversements exécutables pour identifier les fichiers nouvellement écrits
  • Extraction de fuite de hash — analyse tous les corps de réponse et en-têtes pour détecter les motifs de noms de fichiers <32hex>.<ext>
  • Vérification d'exécution — confirme l'exécution PHP réelle en recherchant une signature unique dans le corps de la réponse, en écartant les cas de service de fichiers statiques et de divulgation de code source
  • Sondage PATH_INFO — tente des contournements du gestionnaire de serveur (.chunk/x.php, /.php) pour déclencher l'exécution PHP sur des extensions non-PHP
  • Charges utiles polyglottes — génère des images PNG valides avec du PHP intégré après le bloc IEND
  • Sortie professionnelle — affichage terminal coloré en temps réel avec suivi d'état par cible

Prérequis

root@kitploit:~
Python >= 3.8
root@kitploit:~
pip install requests urllib3 beautifulsoup4

beautifulsoup4 est optionnel mais recommandé pour une extraction plus fiable des champs de formulaire.


Utilisation

root@kitploit:~
python CVE-2026-10818.py

Vous serez invité à fournir :

InviteDescriptionDéfaut
Fichier de ciblesChemin vers un fichier texte contenant une cible par lignelist.txt
ThreadsNombre de workers concurrents (1–20)5

Format du fichier de cibles

root@kitploit:~
https://example.com
http://target.org
subdomain.example.net
192.168.1.100
https://example.com/wordpress

Une URL par ligne. Prend en charge http://, https://, les domaines nus, les IP et les installations en sous-répertoire.


Sortie

Terminal

root@kitploit:~
  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  ┃                                                                ┃
  ┃      ██▄    ██  ██  ██                                         ┃
  ┃      ████   ██   ████                                          ┃
  ┃      ██ ██  ██    ██                                           ┃
  ┃      ██  ████   ████                                           ┃
  ┃      ██   ███  ██  ██                                          ┃
  ┃                                                                ┃
  ┃      Nxploited  ━  Khaled Alenazi  ━  T.m @Kxploit             ┃
  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
  ┃      CVE-2026-10818     WPForms Pro ≤ 1.10.1.1                 ┃
  ┃      Chunked Upload → Predictable Path → RCE                  ┃
  ┃      Results ━▸ Nx_hit/                                        ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Pendant le scan, chaque cible progresse à travers des étapes étiquetées :

root@kitploit:~
  02:14:52  ◆  target.com                        VER  WPForms 1.9.3.1 vulnerable
  02:14:53  ◆  target.com                       FORM  1 upload form(s) on /contact
  02:14:53  ◆  target.com                     UPLOAD  6 safe + 5 exec payloads
  02:14:55  ◆  target.com                        FIN  poly_png → a8f3...1b22.png URL returned
  02:14:57  ◆  target.com                        DIR  listing enabled, 4 file(s) before exec upload
  02:14:59  ◐  target.com                       EXEC  shell_php → finalized on disk (hash unknown)
  02:15:01  ◆  target.com                        DIR  1 NEW exec file(s) after upload!

  ●  target.com  SHELL  dir-new:7c4f...e8a1.php  https://target.com/wp-content/uploads/wpforms/tmp/7c4f...e8a1.php

Fichiers de résultats

Tous les résultats sont enregistrés dans Nx_hit/ :

FichierContenu
Nx_shell.txtRCE confirmée — URL, étiquette et aperçu du corps de la réponse
Nx_vuln.txtÉcriture arbitraire de fichier confirmée sans vérification d'exécution

Résumé

root@kitploit:~
  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  ┃  COMPLETE   150 targets processed                              ┃
  ┃                                                                ┃
  ┃  ● 3 shell     ◐ 12 vuln     ○ 85 skip     ✗ 50 miss          ┃
  ┃                                                                ┃
  ┃  Results ━▸ Nx_hit/                                            ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
SymboleSignification
● shellExécution PHP confirmée sur la cible distante
◐ vulnFichier écrit sur le disque, exécution non confirmée
○ skipCible inaccessible, corrigée ou aucun formulaire de téléversement trouvé
✗ missÉchec des tentatives de téléversement

Pipeline de scan

root@kitploit:~
Target
  │
  ├─ Reachability (HTTPS → HTTP fallback)
  ├─ WPForms Version Detection
  ├─ Form Discovery (100+ page paths + sitemap crawl)
  ├─ AJAX Route Validation
  │
  ├─ Phase 1: Safe Uploads (png/jpg/pdf + finalize → URL)
  │     └─ Shell verification on returned URLs
  │
  ├─ Phase 2: Directory Snapshot (BEFORE)
  │
  ├─ Phase 3: Exec Uploads (php/phtml/php5/phar/shtml + finalize)
  │     ├─ Leaked filename extraction from response
  │     └─ Hash pattern extraction from body + headers
  │
  ├─ Phase 4: Directory Snapshot (AFTER) → Diff → New exec files
  │     └─ Shell verification on each new file
  │
  ├─ Phase 5: Hash Leak Verification
  │     └─ Build URLs from leaked hashes → Shell check
  │
  ├─ Phase 6: Chunk-Only Uploads (no finalize → predictable SHA1 path)
  │     └─ Direct access + PATH_INFO bypass probing
  │
  └─ Result Classification (shell / vuln / skip / miss)

Avertissement

Cet outil est fourni strictement à des fins de tests de sécurité autorisés et de recherche éducative. Utilisez-le uniquement sur des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite de test.

L'accès non autorisé à des systèmes informatiques est illégal. L'auteur décline toute responsabilité en cas d'utilisation abusive, de dommages ou de conséquences juridiques résultant de l'utilisation de ce logiciel.

En utilisant cet outil, vous acceptez d'être seul responsable de vos actions et de vous conformer à toutes les lois et réglementations applicables.


Par : Nxploited
Khaled Alenazi
T.m @Kxploit

Télécharger l’outil