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.

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.
