Um caso grave de comprometimento de cadeia de suprimentos atingiu dezenas de plugins do WordPress desenvolvidos pela empresa EssentialPlugin. Segundo apurações da Patchstack, um agente malicioso adquiriu a empresa e, a partir daí, inseriu um backdoor em mais de 20 plugins, expondo milhares de sites WordPress a riscos de infecção por malware.
Administradores que utilizam qualquer plugin desenvolvido pela EssentialPlugin devem atualizar imediatamente para as versões mais recentes. A Patchstack já disponibilizou registros de vulnerabilidade para todos os plugins afetados e publicou uma regra de mitigação que cobre parcialmente um dos cenários de exploração identificados.
Quem é a EssentialPlugin

A EssentialPlugin é uma desenvolvedora de plugins WordPress que mantém diversos projetos open-source hospedados no repositório oficial wordpress.org. Entre as extensões criadas pela empresa, com milhares de instalações ativas, estão o WP Logo Showcase Responsive Slider and Carousel, o Countdown Timer Ultimate e o Popup Maker and Popup Anything, entre outros.
Como o ataque foi descoberto

De acordo com informações levantadas pela Anchor Host, a empresa vinha desenvolvendo plugins desde 2015. Em 2025, no entanto, o negócio foi vendido a um comprador identificado apenas como “Kris” por meio da plataforma Flippa. Logo após a aquisição, o primeiro commit realizado pelo novo proprietário já continha a inserção do backdoor em todos os plugins do portfólio.
Em setembro de 2025, um código enviado sob a mensagem de commit “Check compatibility with WordPress version 6.8.2” trazia uma vulnerabilidade de injeção de objeto PHP, associada a uma cadeia de gadgets capaz de ser acionada caso o domínio analytics.essentialplugin.com retornasse conteúdo serializado malicioso. Embora o backdoor tenha sido implantado sete meses antes, ele permaneceu inativo até 5 de abril de 2026.
No dia 7 de abril, a equipe de revisão de plugins do WordPress confirmou o ataque e removeu a cadeia de gadgets de injeção de objeto PHP de todos os plugins afetados. Os projetos foram removidos permanentemente do diretório oficial, e uma atualização de segurança forçada foi aplicada para eliminar o backdoor e alertar os administradores dos sites.
Este é um caso clássico de comprometimento de cadeia de suprimentos, resultante da venda dos plugins originais a um terceiro que se revelou um agente de ameaça malicioso.
Como o ataque funciona tecnicamente

O backdoor só era ativado quando o domínio analytics.essentialplugin.com retornava uma carga serializada maliciosa, que era então deserializada para permitir escrita arbitrária de arquivos ou execução de comandos no servidor.
O ponto de entrada

Os plugins registravam um endpoint de API REST sem qualquer exigência de autenticação, aceitando requisições do tipo POST através da rota “/analytics/”. A função de callback associada recebia parâmetros como identificador do site, identificador do produto, slug do produto e URL do site, processando essas informações para buscar dados de atualização junto ao servidor do fornecedor.
O ponto de execução da falha
O método responsável por buscar informações de versão fazia uma requisição ao endpoint remoto e, em seguida, aplicava a função unserialize() diretamente sobre o conteúdo retornado — sem qualquer validação. Como o endereço do endpoint (analytics.essentialplugin.com) estava fixado no código, bastava que o servidor comprometido devolvesse um objeto serializado malicioso para que os dados fossem processados e atribuídos a propriedades internas da classe, como data de lançamento, status, changelog e cache de versão.
A cadeia de gadgets que permitia escrita arbitrária de arquivos
Isoladamente, a injeção de objeto PHP não representa grande risco. O problema surge quando existe uma cadeia de gadgets capaz de transformar essa falha em algo mais grave, como escrita ou exclusão arbitrária de arquivos.
Nos valores padrão da classe afetada, uma propriedade chamada “write” trazia o valor aparentemente inofensivo “update_option”. Contudo, após a execução da função de busca de versão, todas as propriedades da classe podiam ser substituídas por valores enviados pelo servidor do atacante — inclusive essa.
Na função responsável por processar as informações de versão, esse valor era usado para montar dinamicamente uma chamada de função. Ao ser manipulado pelo atacante, o valor “update_option” podia se transformar em file_put_contents(), permitindo a escrita de um arquivo malicioso — por exemplo, um script PHP com backdoor — em qualquer caminho do servidor, resultando em comprometimento total do ambiente.
Resposta da equipe de revisão de plugins do WordPress
Assim que identificou a extensão do problema, a equipe de revisão de plugins do WordPress agiu para conter a propagação do ataque. Todos os plugins afetados foram completamente removidos do repositório oficial, impedindo novas instalações e infecções. Além disso, uma atualização forçada foi distribuída para neutralizar a execução do código malicioso, comentando o trecho responsável pela escrita de arquivos, mesmo em sites que já haviam sido comprometidos.
O caso reforça a importância de monitorar mudanças de titularidade em plugins amplamente utilizados, já que a venda de projetos open-source a compradores desconhecidos pode abrir brechas sérias de segurança para milhares de sites que dependem dessas extensões.