
Prova de conceito e reprodução em laboratório para CVE-2026-75816, uma tomada de conta não autenticada do WordPress Frontend Admin por meio do envio de formulário admin-ajax.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · CVE-2026-75816
Frontend Admin by DynamiApps 3.29.11 - shabti
Eu sou @abraxas_null. Laboratório em loopback. O cliente é CVE-2026-75816-Abraxas-Labs.py.
user_1 não é um post. admin-ajax.php frontend_admin/form_submit sem autenticação. ActionPost::conditions_logic() retorna antecipadamente quando o id do objeto não é numérico (user_1), pulando current_user_can('edit_post'). O campo Email pre_update_value na 3.29.11 não tem verificação edit_user e faz wp_update_user do email do usuário 1. O NVD lista até a 3.29.12; o changelog da 3.29.12 adicionou essa verificação. O laboratório é a 3.29.11. A atual é a 3.29.13.
| CVE | CVE-2026-75816 · CVE.org |
| CWE | CWE-287 |
| CVSS | Crítico: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Produto | Frontend Admin by DynamiApps |
| Afetado | todas as versões até 3.29.11 (o NVD lista 3.29.12; a 3.29.12 adicionou a verificação edit_user do campo Email) |
| Corrigido | 3.29.12 e posteriores |
| Autenticação | nenhuma |
| Licença | GNU Affero GPL v3.0 |
| Laboratório | apenas 127.0.0.1 |
Um POST de visitante altera o email do administrador. A redefinição de senha para esse endereço é tomada de conta. O laboratório para na alteração de email. Não estou publicando uma receita de senha perdida voltada ao admin de outra pessoa.
A Wordfence nomeou pre_update_value e user_1. Eu li conditions_logic, depois o campo Email, depois coletei o formulário público.
GET /fea-lab/. Extraia _acf_nonce, _acf_objects, a chave do campo user_email. POST acff[post][<key>][email protected]. GET /?fea_lab_email=1. Um pequeno JSON ajax Post updated, depois o novo endereço.
Caminhos errados: action=pre_update_value ou parse_array (nomes de funções não são rotas); nonce fixo no código; post_id numérico (aí edit_post realmente executa e um visitante é negado); who_can_see diferente de all; 3.29.12; tratar [email protected] ainda no corpo como sucesso.
Porta 8088. Frontend Admin 3.29.11. Formulário público /fea-lab/, who_can_see=all, objeto user_1.
Alvo apenas 127.0.0.1:8088 (ou o loopback que você vinculou).
cd lab
docker compose up --force-recreate
./run.sh
Testemunho: GET /?fea_lab_email=1 é [email protected]. HTML genérico de formulário ou [email protected] não conta.
Formas de perder sem aprender nada:
[email protected] ainda sendo o email do admin0 / -1 / JSON de permissão sem a alteração de emailAtualize o Frontend Admin by DynamiApps para a 3.29.12 ou mais recente (atual 3.29.13). Execute novamente CVE-2026-75816-Abraxas-Labs.py contra a build corrigida: o email do admin não deve mudar.
plugins.trac.wordpress.org/changeset/3664865/acf-frontend-form-element
www.wordfence.com/threat-intel/vulnerabilities/id/f1637a3b-7b0f-485d-9d19-4f711f8c671b?source=cve
Diretório de plugins: acf-frontend-form-element
Navegador Trac: plugins.trac.wordpress.org/acf-frontend-form-element
Tags SVN: plugins.svn.wordpress.org/acf-frontend-form-element
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
GNU Affero GPL v3.0. Veja LICENSE.
O cliente conversa com o loopback. Usá-lo contra sistemas que você não possui não é autorizado pela Abraxas Labs. Sem garantias.