Alerta de segurança campanha de compromisso da cadeia de fornecimento ataca WordPress por JSON remoto e XSS persistente

Autor: Publicada 6 min de lectura 201 leituras

As imagens deste artigo foram geradas com inteligência artificial. Como publicamos

Pesquisadores de segurança detectaram uma campanha de compromisso da cadeia de fornecimento que aproveitou um componente promocional de BdThemes, um provedor de plugins para WordPress, para controlar sites sem alterar arquivos de plugins hospedados no repositório oficial. Como resultado, a equipe de plugins do WordPress deshabilitou temporariamente as downloads das extensões afetadas no diretório oficial nos dias 7 e 8 de agosto de 2026, até completar uma revisão. A técnica não modifica código em disco dentro do repositório: explora JSON remotos usados para mostrar banners administrativos e executa XSS persistente no navegador de administradores.

Atos confirmados: um relatório técnico publicado por pesquisadores externos (Wordfence) descreve que o vetor é uma livraria incluída em vários plugins de BdThemes, chamado Biggopti, que descarrega dados JSON a partir de um bucket de DigitalOcean Spaces para renderizar banners promocionais no painel wp-admin. Esses JSON contêm um parâmetro "display_id" que não escapa corretamente no cliente, o que permite a injeção de scripts (XSS) quando um atacante controla o conteúdo JSON. A exploração ativa um arquivo JavaScript (por exemplo, "w2.js") que conta com um servidor de comando e controle (C2), cria contas administrativas, sobe um ZIP que exibe um web shell PHP ("emer-run.php") e instala persistência na pasta de Must-Use plugins (mu-plugins), incluindo um backdoor de "login mágico" e um módulo que oculta os usuários maliciosos. A falha recebeu uma pontuação CVSS de 5.4 e a mudança vulnerável foi introduzida pela primeira vez em 1 de março de 2026 em pelo menos um dos pacotes afetados.

Alerta de segurança campanha de compromisso da cadeia de fornecimento ataca WordPress por JSON remoto e XSS persistente
Imagem gerada com IA.

Como funciona tecnicamente: o componente Biggopti atua como cliente que solicita JSON remotos hospedados pelo desenvolvedor (em DigitalOcean Spaces). Se um ator ofensivo obter permissões de escrita sobre esse armazenamento, você pode substituir as respostas JSON com payloads que incluem HTML/JS malicioso no campo vulnerável. Cada vez que um administrador acede a qualquer página de wp-admin, o navegador interpreta o banner e executa o programa injetado no contexto do domínio — o que confere capacidades de gestão (através da REST API), o aumento de plugins e a execução remota sem alterar o código original do plugin no servidor. Este texto evita a maioria das verificações baseadas em integridade de arquivos porque não modifica arquivos do repositório WordPress.org.

Quem está em risco e por que importa: Qualquer site WordPress com uma das extensões afetadas e pelo menos um usuário admin que tenha iniciado sessão é potencialmente vulnerável. A lista de plugins envolvidos inclui vários pacotes populares (por exemplo, “bdthemes-element-pack-lite” com 100.000+ instalações ativas), mas também há extensões com menos instalações. A conseqüência prática é completa usurpação administrativa do site: criação de contas, instalação de web shells, persistência difícil de detectar e exfiltração de informações ou pivote a outros sistemas. Além disso, a técnica torna mais cara a detecção geral porque não deixa mudanças evidentes nos arquivos do plugin distribuído pelo WordPress.org.

Indicadores de compromisso e ações de detecção: busca usuários com padrões mencionados pelos pesquisadores (por exemplo nomes que comecem com "bd_" seguidos de um hash) e revisa arquivos e diretórios poremer-run.phpou entradas suspeitas em mu-plugins. Revi os logs HTTP para pedidos de saída para domínios associados ao C2 (por exemplo, a campanha contava um host identificado como ia-cdn[.]com/fz/c no relatório) e busca pedidos recentes a endpoints de API tipo "api-data-all-records" ou "api-data-records". Também é sinal de compromisso o aparecimento de ZIP ou plugins recentemente subidos por usuários que não deveriam tê-los instalado.

Medidas concretas e imediatas a tomar pelos administradores (confirmadas e práticas): mude todas as credenciais administrativas e active 2FA; verifique e remova contas administrativas não reconhecidas; verifique e, se necessário, restaure desde cópias de segurança anteriores a 1 de março de 2026; investigue a presença de arquivos mencionados (emer-run.php, w2.js, x.js) e entradas em mu-plugins; bloquee a nível de firewall e infraestrutura as comunicações salientes para os C2 indicados; revoque e regenere chaves/credenciais do fornecedor de armazenamento (DigitalOcean Spaces) se seu site ou plugins usam buckets próprios. Se você não tem capacidade de resposta interna, entre em contato com um provedor forense ou com a equipe de segurança do WordPress para assistência.

Recomendações para desenvolvedores e administradores de plugins: nunca confie em dados JSON remotos sem saneamento e escape no cliente; aplique saneamento do lado servidor e validação estrita de campos injetados em HTML; considere assinar assets remotas ou servir-lhes de origens armazenadas e controladas com mecanismos de integridade (SRI/headers) e limite de permissões de acesso em buckets de objetos. Implemente Content Security Policy (CSP) restritiva na área admin para mitigar execução de scripts remotos.

Alerta de segurança campanha de compromisso da cadeia de fornecimento ataca WordPress por JSON remoto e XSS persistente
Imagem gerada com IA.

Distinção entre fatos confirmados, estimativas e incertezas: confirma-se que o Wordfence documentou a exploração de JSON remotos e que o WordPress desactivou as descargas dos plugins enquanto se investigava. É uma estimativa razoável — baseada em indicadores técnicos do relatório — que o ator persegue persistência administrativa para pivotar ou executar código malicioso em massa (spam, crypto, botnets), porque a cadeia de ações o facilita. O que permanece incerto e não confirmado publicamente é a identidade do operador do C2, o número total de sites comprometidos na natureza e se a conta de BdThemes foi comprometida diretamente ou se houve uma falha intermédia na cadeia de implantação de seu armazenamento. Também é uma correlação técnica (não um teste de atribuição definitiva) que os mesmos servidores C2 estejam relacionados com campanhas prévias contra outros plugins.

Para informação técnica adicional e contexto sobre XSS e gestão de CVE, consulte recursos públicos como a documentação da DigitalOcean Spaces e o registro de vulnerabilidades: https://www.digitalocean.com/docs/spaces/ e a base de dados de vulnerabilidades (NVD) para o CVE recente corrigido pelo WordPress: https://nvd.nist.gov/. Também siga o blog de análise de ameaças de provedores independentes como Wordfence para obter indicadores e atualizações técnicas verificadas: https://www.wordfence.com/blog/.

Conclusão: esta campanha sublinha um risco crescente nas cadeias de fornecimento de software: não apenas a modificação de pacotes distribuídos, mas a manipulação de recursos remotos que são consumidos em tempo de execução. Os administradores devem priorizar a detecção proativa (revisão de usuários e artefatos), a contenção (bloqueio de C2, rotação de chaves) e a recuperação de cópias limpas; os desenvolvedores, por sua vez, devem eliminar qualquer dependência que assuma confiança cega em conteúdos remotos sem validação. A revisão completa e a coordenação com a equipe de segurança do WordPress são passos indispensáveis antes de voltar a ativar downloads ou reinstalar componentes comprometidos.

Cobertura

Relacionadas

Mas notícias do mesmo assunto.