Pular para o conteúdo principal
Fechar
Segurança

WP Maps Pro: Backdoor por Design e Admin Takeover

Gabriel Ferraresi· CEO | Tech862 de junho de 20265 min
wordpresspluginadmin takeoverbackdoorcve

Um request. Sem autenticação. Sem senha. E o atacante é admin do seu WordPress. A CVE-2026-8732 no WP Maps Pro não é uma falha sutil — é uma feature que entrega credenciais de administrador a qualquer visitante que pedir. CVSS 9.8. Exploração ativa. Wordfence bloqueou 3.600 ataques em 24 horas. Mais de 15.800 sites com o plugin instalado.

A backdoor que se chamava "temporary access"

WP Maps Pro é um plugin comercial de Google Maps vendido no Envato. Tem uma feature chamada "temporary access" — supostamente para permitir que o suporte do vendor acesse o site do cliente. O problema: essa feature é uma backdoor por design.

O handler wpgmp_temp_access_ajax foi registrado com wp_ajax_nopriv_ — o hook do WordPress para endpoints que não exigem autenticação. A única proteção é um nonce (fc-call-nonce) embutido no JavaScript que o plugin injeta em todas as páginas públicas. Qualquer visitante que acesse qualquer página do site pode ler o nonce no código-fonte.

Isso não é um bypass. É o design intencional da feature. O handler foi colocado no hook nopriv deliberadamente — para funcionar sem que o visitante estivesse logado. A feature não foi comprometida por um atacante que encontrou um caminho não intencional. Ela foi construída para fazer exatamente o que faz: emitir credenciais de admin via endpoint público.

A cadeia de ataque: um request, um clique, full takeover

A exploração é trivial. Não exige exploit complexo, não exige conhecimento técnico avançado. Cinco passos, todos automatizáveis:

  1. Atacante acessa qualquer página do site e extrai o nonce do HTML
  2. POST para admin-ajax.php com action=wpgmp_temp_access_support e check_temp=false
  3. O plugin cria um usuário com role administrator, username fc_user_ + string aleatória, email [email protected]
  4. O plugin gera uma magic login URL e retorna no response
  5. Atacante acessa a URL. wp_set_auth_cookie() autentica como admin. Sem senha. Sem MFA. Sem qualquer verificação adicional.

Um request. Um clique. Full site takeover. O escalonamento não é side effect — é a função que o handler executa por design. A conta criada tem role de administrator completo. O atacante pode instalar plugins, editar temas, modificar arquivos, criar novas contas, excluir conteúdo. Tudo que um admin legítimo pode fazer — porque, para o WordPress, o atacante é um admin legítimo.

Por que um nonce no frontend não é autenticação

O argumento do vendor provavelmente seria: "mas tem nonce". Nonce no WordPress é um token que confirma que o caller visitou uma página do site antes de fazer a request. Isso previne CSRF — não autentica o caller.

Todo visitante pode visitar qualquer página. Logo, todo visitante pode obter o nonce. Logo, todo visitante passa pelo nonce check. Um mecanismo de proteção que qualquer visitante satisfaz não é proteção — é theater.

A correção na versão 6.1.1 confirma isso: adicionou current_user_can('manage_options'). Agora exige que o caller já seja admin para criar outro admin. O que deveria existir desde o dia 1. A ausência de um capability check não foi um esquecimento — foi a condição necessária para a feature funcionar sem login. Uma feature que emite credenciais de admin para quem pedir é uma backdoor com outro nome.

A distinção entre nonce e autenticação não é acadêmica. Nonce protege contra requisições forjadas de terceiros (CSRF). Autenticação verifica quem está fazendo a requisição. Confundir os dois é como confundir um crachá de visitante com uma chave da porta do cofre. O WP Maps Pro tratou o crachá de visitante como se fosse a chave.

15.800 sites pagaram por um plugin que entregava admin a qualquer visitante

O WP Maps Pro é um plugin pago, vendido no Envato, com mais de 15.800 instalações ativas. Esses sites pagaram por uma ferramenta de mapas que, como bônus, dava acesso de administrador a qualquer visitante. Wordfence registrou 3.600 ataques bloqueados nas primeiras 24 horas de exploração ativa. O número de sites efetivamente comprometidos é desconhecido.

Na Tech86, já encontramos em auditorias plugins comerciais com handlers nopriv que executam ações privilegiadas. Não é exclusividade do WP Maps Pro — é um padrão. Plugins que precisam de "acesso de suporte" ou "diagnóstico remoto" frequentemente implementam mecanismos que bypassam autenticação. A diferença é que, na maioria dos casos, ninguém auditou o código para descobrir.

O ecossistema de plugins WordPress tem um problema estrutural de confiança cega. O site médio roda entre 20 e 40 plugins. Cada um pode registrar handlers nopriv, embutir nonces no frontend, criar endpoints sem capability check. Ninguém revisa isso antes de instalar. O marketplace do Envato não exige auditoria de segurança. O repositório do WordPress.org não exige. O código entra em produção sem verificação — e a primeira pessoa a lê-lo com olhos de segurança é o atacante.

O que fazer agora

Se você tem WP Maps Pro instalado, a ação é imediata: atualize para 6.1.1 ou desative o plugin. Depois, audite contas de administrador procurando fc_user_* ou [email protected]. Verifique access logs por POST em admin-ajax.php com action=wpgmp_temp_access_support. Se houver sinais de comprometimento, trate como breach — não basta remover a conta maliciosa. Rotacione todas as credenciais, escaneie o filesystem por web shells, verifique wp_options e temas por conteúdo injetado.

Na Tech86, auditamos ambientes WordPress com foco em superfícies de ataque de plugins. Se seu WordPress tem plugins comerciais sem auditoria de segurança, você está confiando o acesso ao seu negócio em código que ninguém verificou. Um nonce no frontend não é autenticação. Uma feature que emite credenciais de admin para qualquer visitante é uma backdoor. E 15.800 sites pagaram por ela sem saber.

Interessado nesta solução?

Conheça nossos serviços gerenciados e infraestrutura.

Conheça Segurança Ofensiva

Perguntas Frequentes

É uma vulnerabilidade CVSS 9.8 que permite qualquer visitante criar uma conta de administrador no WordPress sem autenticação. O plugin registra um handler AJAX no hook nopriv — destinado a endpoints sem login — e usa apenas um nonce como proteção, que está embutido no JavaScript público da página.

Não. Nonce confirma que o visitante carregou uma página do site — não que ele tem permissão para executar a ação. Como o nonce fica no HTML público, qualquer visitante pode extraí-lo e passar pelo check. Um nonce no frontend não é autenticação.

Procure contas admin com username fc_user_ seguido de caracteres aleatórios, ou email [email protected]. Verifique access logs por POST em admin-ajax.php com action=wpgmp_temp_access_support. Se encontrar qualquer um desses sinais, trate como breach completo.

Sim. A versão 6.1.1 adicionou current_user_can('manage_options') ao handler, exigindo que o caller já seja admin para criar outro admin. Mas se o site já foi comprometido antes da atualização, apenas atualizar não remove o acesso malicioso — é necessário auditar contas e rotacionar credenciais.

Mais de 15.800 sites tinham o WP Maps Pro instalado. Wordfence bloqueou 3.600 ataques nas primeiras 24 horas de exploração ativa. O número real de sites comprometidos é desconhecido — muitos podem ter sido invadidos sem que os donos saibam.

Blog — Fale Conosco

Tem alguma pergunta sobre nossos artigos ou serviços? Nossa equipe está pronta para ajudar.

Agendar Reunião

Reserve um horário.

Agendar Agora

E-mail

Envie uma mensagem.

[email protected]

WhatsApp

Conversa rápida.

Endereço

Avenida Paulista, 1636 - São Paulo - SP - 01310-200

Especialista Tech86

Online agora

Olá! Como podemos ajudar a escalar seu negócio hoje?

Tech86 Engineering

Nós valorizamos sua privacidade

Utilizamos cookies e tecnologias similares para otimizar a sua experiência, analisar o tráfego do site e personalizar conteúdo. Ao clicar "Aceitar Todos", você concorda com o uso de todos os cookies. Leia nossa Política de Privacidade.