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 vulnerabilidade equivalente a backdoor por design falho.

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. Tomada total do site. O escalonamento não é efeito colateral, é 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, é encenação.

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.