Falha no plugin Ninja Forms permite invadir sites WordPress

Falha no plugin Ninja Forms permite invadir sites WordPress

Uma nova campanha de ataques está mirando sites WordPress por meio de vulnerabilidades de XSS armazenado nos plugins Ninja Forms e WPC Product Bundles para WooCommerce. A falha no plugin Ninja Forms, identificada como CVE-2026-94504, está sendo usada junto com a CVE-2026-93836, presente no WPC Product Bundles, para executar JavaScript malicioso dentro da sessão de administradores.

O cenário é especialmente preocupante porque o ataque não termina na execução do código no navegador. Pesquisadores observaram uma cadeia de comprometimento capaz de instalar um plugin falso, criar contas administrativas ocultas, adicionar mecanismos alternativos de acesso e disponibilizar um gerenciador de arquivos malicioso. A campanha começou a ser observada em 4 de outubro de 2026 e passou a atingir usuários do Ninja Forms no dia seguinte.

O Ninja Forms está presente em mais de 500 mil instalações, ampliando significativamente o potencial de impacto. Por isso, administradores devem tratar essas vulnerabilidades como uma ameaça prática, especialmente se os plugins estiverem em versões antigas.

Como funciona a falha no plugin Ninja Forms

A campanha utiliza uma técnica conhecida como Cross-Site Scripting armazenado, ou Stored XSS. Diferentemente de um ataque que depende apenas de convencer uma vítima a acessar uma página externa, o código malicioso é armazenado dentro do próprio ambiente WordPress e posteriormente executado quando uma pessoa com privilégios elevados acessa o conteúdo contaminado.

No caso do Ninja Forms, a vulnerabilidade CVE-2026-94504 afeta versões até a 3.15.3. O problema está relacionado ao tratamento de determinados dados enviados por formulários no editor legado de submissões. Um invasor consegue inserir conteúdo JavaScript que posteriormente é interpretado no contexto administrativo do WordPress.

Um ponto importante é diferenciar injeção de execução. O atacante pode inserir o conteúdo malicioso sem possuir uma conta administrativa, mas o código precisa ser carregado em uma página visualizada por um administrador autenticado para obter o contexto privilegiado necessário à próxima etapa.

Na campanha observada, o código x.js é carregado a partir de uma infraestrutura controlada pelos invasores. Quando o administrador acessa a submissão comprometida, o JavaScript passa a operar com os privilégios disponíveis naquela sessão.

Imagem com a logomarca do WordPress

Entendendo as vulnerabilidades CVE-2026-94504 e CVE-2026-93836

A CVE-2026-94504 está associada ao Ninja Forms, enquanto a CVE-2026-93836 afeta o WPC Product Bundles para WooCommerce.

No WPC Product Bundles, versões até a 8.6.6 permitem que um valor malicioso seja inserido no parâmetro relacionado à quantidade de produtos. O sistema realiza uma conversão para número durante a validação, mas preserva o conteúdo original, permitindo que uma carga contendo código seja armazenada nos metadados de pedidos.

O problema também é classificado como CWE-79, referente à neutralização inadequada de entrada durante a geração de páginas. A CVE recebeu classificação alta, com pontuação CVSS 3.1 de 7,2 na base de dados consultada.

A partir daí, o princípio é semelhante ao observado no Ninja Forms: o conteúdo malicioso permanece armazenado até que uma página administrativa contendo os dados seja aberta.

A existência de duas portas de entrada diferentes é particularmente relevante. A análise da campanha mostra que os invasores utilizaram o mesmo payload contra os dois plugins, demonstrando que a operação não depende de uma única vulnerabilidade.

Ação do malware e criação de administradores invisíveis

O verdadeiro risco aparece depois que o JavaScript malicioso consegue executar na sessão de um administrador.

O código utiliza recursos legítimos do próprio WordPress, incluindo mecanismos de autenticação e nonces administrativos, para realizar ações que normalmente exigiriam interação direta do administrador. Entre elas está o envio e a instalação de um plugin malicioso que se apresenta como “WP Smart Thumbnails”, atribuído falsamente a “MediaPress Labs”.

O componente funciona como uma porta de entrada persistente. A análise da campanha identificou diferentes mecanismos de acesso, incluindo:

  • Uma conta de administrador visível;
  • Uma conta administrativa oculta, que não aparece normalmente na tela de usuários do WordPress;
  • Um mecanismo de login secreto, capaz de fornecer acesso administrativo;
  • Um gerenciador de arquivos sem autenticação convencional, usado para manipular arquivos do site e introduzir novos códigos maliciosos.

A existência de múltiplos mecanismos de persistência torna a limpeza muito mais complexa. Mesmo que o administrador encontre e remova o plugin falso, outros componentes podem permanecer no servidor e permitir que o invasor volte posteriormente.

Outro detalhe importante para investigações é que alguns arquivos utilizados pelo ataque podem apresentar datas antigas, uma técnica que dificulta análises baseadas exclusivamente no horário de modificação dos arquivos.

Atualização imediata e mitigação de danos

A primeira providência deve ser atualizar os plugins afetados.

Para o Ninja Forms, a versão que corrige a vulnerabilidade é a 3.15.4. Para o WPC Product Bundles, a correção está disponível a partir da 8.6.7. Administradores devem, porém, preferir sempre a versão estável mais recente disponível para cada plugin, em vez de permanecer propositalmente no primeiro lançamento que corrigiu a CVE.

A atualização é essencial, mas existe uma ressalva crítica: atualizar um plugin não remove uma infecção que já tenha ocorrido.

Sites que utilizavam versões vulneráveis durante o período de exploração devem ser tratados como potencialmente comprometidos. É necessário procurar plugins desconhecidos, contas administrativas não autorizadas, arquivos PHP suspeitos, alterações em mu-plugins, modificações recentes no banco de dados e outros mecanismos de persistência.

Também é recomendável revisar logs do servidor e do WordPress, verificar alterações inesperadas em arquivos e usuários, invalidar sessões administrativas e alterar senhas e credenciais importantes quando houver evidências de comprometimento.

Em incidentes confirmados, a investigação deve ir além da exclusão de um usuário suspeito. Backdoors podem permanecer em arquivos aparentemente legítimos, plugins auxiliares ou componentes carregados automaticamente pelo WordPress.

Conclusão e medidas de segurança contínuas

A campanha envolvendo Ninja Forms e WPC Product Bundles mostra como uma vulnerabilidade aparentemente limitada a XSS pode evoluir para um comprometimento completo de um site WordPress. O invasor não precisa necessariamente obter a senha de um administrador: basta conseguir armazenar o código malicioso e esperar que um usuário privilegiado acesse o conteúdo contaminado.

A falha no plugin Ninja Forms, em conjunto com a vulnerabilidade do WPC Product Bundles, demonstra também por que atualizações de segurança não devem ser adiadas. Uma instalação WordPress aparentemente funcional pode estar vulnerável mesmo quando o núcleo do sistema está atualizado.

Administradores devem verificar imediatamente as versões instaladas do Ninja Forms e do WPC Product Bundles, atualizar os componentes vulneráveis e investigar qualquer ambiente que tenha executado essas versões durante o período de exploração.

Se houver sinais de invasão, a prioridade deve ser realizar uma análise completa do servidor, remover todos os mecanismos de persistência identificados e restaurar a confiança do ambiente antes de considerá-lo novamente seguro.

Compartilhe este alerta com outros administradores, desenvolvedores e equipes responsáveis por sites WordPress. Em campanhas de exploração ativa, tempo de resposta pode ser a diferença entre apenas instalar uma atualização e precisar realizar uma investigação completa de incidente.