
Plugin de WordPress de instalación directa que bloquea el gestor de importación de demostración vulnerable en FunnelForms Pro para mitigar la ejecución remota de código (CVE-2026-39440).
| Campo | Valor |
|---|
| ID CVE | CVE-2026-39440 |
| Puntuación CVSS | 9.9 (Crítico) |
| Afectados | FunnelForms Pro ≤ 3.8.1 |
| Privilegios | Bajos (nivel Suscriptor) |
| Tipo | Inyección de código → Inclusión remota de código → RCE |
| ¿Parcheado? | Aún no hay parche oficial del proveedor disponible |
| Descubierto por | 3ele / Sebastian Weiss |
| Publicado | 21 abr 2026 (Patchstack) |
El controlador AJAX af2_demoimport (admin/menu_ajax_functions/demoimport.php) tiene dos fallos fatales:
unserialize() sobre Datos Controlados por el Atacante$jsonFile = file_get_contents( $imp_exp_tmp_path . 'af2_export.txt' );
$toImport = unserialize( urldecode( $jsonFile ) );
Un archivo ZIP manipulado que contenga un af2_export.txt malicioso desencadena una Inyección de Objetos PHP durante la deserialización, lo que conduce a una Ejecución Remota de Código completa.
$_POST['filename']$filename = $_POST['filename'];
$file = pathinfo( AF2_PLUGIN_DIR . '/demos/' . $locale . '/' . $filename . '.zip' );
Sin basename(), sin lista blanca. Un atacante proporciona ../../../uploads/evil y extrae un ZIP arbitrario desde fuera del directorio demos/.
Un usuario autenticado con privilegios mínimos (Suscriptor) puede explotar esta cadena.
cve-2026-39440-funnelforms-fix a wp-content/plugins/Copia cve-2026-39440-fix.php directamente a wp-content/mu-plugins/. No se necesita activación: los MU-Plugins se cargan automáticamente.
| Acción | Hook | Prioridad |
|---|---|---|
| Bloquea el controlador AJAX | wp_ajax_af2_demoimport | 1 |
| Elimina el submenú de administración | admin_menu | 999 |
| Quita el JS/CSS de demoimport | admin_enqueue_scripts | 20 |
La ruta de código vulnerable nunca se ejecuta. wp_send_json_error() llama a wp_die() internamente, por lo que el controlador del plugin nunca se alcanza.
Después de la activación:
admin-ajax.php?action=af2_demoimport devuelve:
{
"success": false,
"data": { "message": "La importación de demostraciones está temporalmente deshabilitada por razones de seguridad (CVE-2026-39440)." }
}
Este plugin puede desactivarse y eliminarse una vez que FunnelForms Pro publique una versión parcheada oficial (> 3.8.1) que:
unserialize() por json_decode() o implemente una lista blanca estrictafilename (basename(), lista blanca de demos conocidas)