CVE-2026-27540 no WooCommerce Wholesale Lead Capture: upload PHP explorado ativamente

WordPress Risco Crítico

CVE-2026-27540 no WooCommerce Wholesale Lead Capture: upload PHP explorado ativamente

WooCommerce Wholesale Lead Capture até 2.0.3.1 permite upload arbitrário de PHP sem autenticação e execução remota. A versão 2.0.3.2 corrige; mais de 100 mil tentativas já foram bloqueadas.

Revisado em 14/09/2026 Leitura técnica
CVE-2026-27540
SeveridadeCrítico
Versões afetadasWooCommerce Wholesale Lead Capture 2.0.3.1 e anteriores
Versões corrigidasWooCommerce Wholesale Lead Capture 2.0.3.2 ou superior
Status WebinHostExploração ativa observada; corrigir e procurar comprometimento

A CVE-2026-27540 é uma falha crítica de upload arbitrário no plugin premium WooCommerce Wholesale Lead Capture. Um visitante sem login pode enviar um arquivo PHP, instalar uma webshell e executar código no site. O Wordfence informa mais de 100 mil tentativas bloqueadas; a correção está na versão 2.0.3.2.

O que aconteceu

O plugin oferece formulário de cadastro de atacadistas com campo de arquivo. A ação AJAX pública wwlc_file_upload_handler recebe, junto com o upload, uma estrutura file_settings. Nas versões vulneráveis, a lista de extensões permitidas é aceita da própria requisição em vez de ser recuperada de uma configuração confiável no servidor.

O atacante inclui php na lista controlada, contorna a verificação e grava um script executável no diretório de uploads. A partir da webshell, pode criar administradores, roubar pedidos e clientes, alterar meios de pagamento, inserir skimmers, enviar spam e manter acesso. As campanhas observadas usaram nomes como shell.php, mas indicadores mudam e não devem ser usados como único critério.

Uma classificação de vulnerabilidade descreve o pior cenário plausível, não confirma que cada servidor tenha sido explorado. A análise correta separa quatro perguntas: o componente existe, a versão está no intervalo afetado, as pré-condições estão presentes e houve evidência de abuso. Essa distinção evita tanto falsa tranquilidade quanto interrupções desnecessárias.

Versões e ambientes afetados e corrigidos

Produto ou linhaAfetado / expostoCorrigido / protegido
WooCommerce Wholesale Lead Capture 2.0.3.1 e anterioresvulnerável sem autenticação2.0.3.2+
Versão 2.0.3.2corrigida para esta CVEmanter licença e updates ativos
Site sem o pluginnão afetado por esta CVE específicaverificar plugins de nome semelhante

A ação AJAX pode ser alcançada por visitante anônimo e a exploração não depende de um cadastro atacadista ser aprovado. Desativar o registro no WooCommerce pode não remover o handler já carregado pelo plugin. WAF reduz tentativas conhecidas, mas um site continua tecnicamente vulnerável até atualizar ou desativar o código.

Em pacotes de distribuição, o número upstream nem sempre muda quando o mantenedor aplica um backport. Por isso, a comparação deve considerar o release completo do pacote, o advisory do fornecedor e, quando aplicável, o estado do livepatch. Apenas comparar o primeiro número exibido pelo software pode produzir falso positivo.

Nível de risco e impacto

Crítico — CVSS 3.1 9,8. Rede, baixa complexidade, nenhuma credencial e nenhuma interação, com possibilidade de RCE e controle completo da loja. Como há exploração real há meses, a resposta deve unir patch e investigação retrospectiva; não basta olhar apenas tentativas posteriores à atualização.

Em hospedagem, uma conta local ou um site comprometido não deve ser tratado como ator confiável. Código obtido por plugin desatualizado, credencial roubada ou upload malicioso pode satisfazer a condição “acesso local” e transformar uma falha de kernel ou painel em comprometimento de outras contas. Quando o efeito inclui root, escape, execução de PHP ou tomada de administrador, considere também bancos, chaves, tokens, e-mail e backups conectados.

Como verificar se o servidor ou site está vulnerável

Confirme presença, status e versão pelo WP-CLI e procure PHP recente em uploads sem executar os arquivos. Pesquise nos access logs a ação AJAX divulgada. Preserve hash, horário, proprietário e requisições relacionadas antes de remover um possível artefato.

wp plugin get woocommerce-wholesale-lead-capture --fields=name,status,version,update,update_version
find wp-content/uploads -type f -iname '*.php' -printf '%TY-%Tm-%Td %TH:%TM %u %p\n' 2>/dev/null
grep -R 'wwlc_file_upload_handler' /usr/local/apache/domlogs 2>/dev/null | tail -100
wp user list --role=administrator --fields=ID,user_login,user_registered

Versão até 2.0.3.1 caracteriza vulnerabilidade mesmo que o log não contenha a string. PHP inesperado em uploads é indicador forte; arquivos legítimos também podem existir em algumas aplicações, então não apague antes de coletar evidências. Administrador recente ou plugin desconhecido amplia a suspeita de comprometimento.

Faça somente inventário defensivo. Não execute prova de conceito em produção. Um exploit pode derrubar o host, alterar dados, apagar vestígios ou atingir outros clientes. Se o resultado for ambíguo, preserve as saídas e compare-as com o boletim do fornecedor.

Como corrigir ou mitigar

Atualize imediatamente para 2.0.3.2 ou superior usando licença e pacote legítimos. Se a atualização não estiver disponível, desative e remova temporariamente o plugin, bloqueie a ação no WAF e impeça execução PHP em uploads após testar compatibilidade. Não mantenha cópia vulnerável renomeada dentro do diretório público.

wp db export backup-pre-cve-2026-27540.sql
wp plugin update woocommerce-wholesale-lead-capture
wp plugin get woocommerce-wholesale-lead-capture --field=version
wp core verify-checksums

Antes da mudança, confirme backup restaurável, acesso alternativo, espaço em disco e integridade dos repositórios. Depois, valide o serviço e a aplicação em vez de considerar o comando concluído como prova suficiente. Mitigações reduzem exposição durante a janela de manutenção, mas devem ser documentadas e removidas ou reavaliadas após o patch definitivo.

Validação posterior e resposta a incidentes

Teste cadastro de atacadistas, anexos, aprovação, e-mails e checkout. Revise uploads, plugins, mu-plugins, temas, cron, usuários, opções, sessões e logs desde a divulgação pública de fevereiro. Se encontrar webshell, isole o site, troque salts, senhas, chaves e credenciais de pagamento a partir de dispositivo confiável e investigue outras contas do mesmo cPanel.

Atualizar impede novas explorações pela falha conhecida, mas não remove persistência criada antes do patch. Se houver usuário inesperado, arquivo alterado, webshell, cron desconhecido, chave SSH nova, processo anormal ou acesso administrativo sem explicação, isole o ativo, preserve logs e acione resposta a incidentes. Faça rotação de segredos a partir de um equipamento confiável e só restaure o serviço depois de entender o alcance.

Medidas adotadas pela WebinHost

Nos sites WordPress gerenciados, a WebinHost prioriza a versão corrigida, busca a ação wwlc_file_upload_handler e arquivos executáveis recentes e valida os fluxos comerciais após o update. Imunify360 adiciona WAF, defesa proativa e varredura de malware; CloudLinux/CageFS reduz movimento entre contas. A exploração ativa exige, ainda assim, patch e análise de indicadores.

Nos serviços em que o gerenciamento da camada de servidor faz parte do contrato, o fluxo da WebinHost inclui acompanhamento dos canais de segurança dos fornecedores, inventário do componente, avaliação de exposição, aplicação controlada da correção disponível e validação posterior. Quando o kernel e a distribuição são compatíveis, o KernelCare reduz a janela de exposição ao aplicar live patches sem aguardar uma reinicialização; quando a correção exige um novo kernel ou o fornecedor não oferece live patch, a equipe planeja a atualização e o reboot conforme o risco e a janela operacional.

O Imunify360 complementa essa resposta com firewall de aplicação, detecção de malware, defesa proativa e inteligência de reputação nos planos elegíveis. Essas camadas ajudam a bloquear ou detectar tentativas, mas não substituem a correção do pacote vulnerável. CloudLinux e CageFS também aumentam o isolamento entre contas, sem transformar uma versão desatualizada em versão segura.

Escopo dos planos gerenciados: a WebinHost prioriza falhas críticas e altas na infraestrutura administrada. Sites, temas, plugins, código e credenciais do cliente continuam exigindo atualização e revisão pelo responsável da aplicação, salvo contratação específica. O status deve ser confirmado por servidor; possuir KernelCare ou Imunify360 não é, isoladamente, prova de que todo CVE foi corrigido.

Tutoriais, downloads e serviços relacionados

Use estes materiais para continuar a verificação com segurança:

Referências oficiais e técnicas

Nota técnica: distribuições Linux e painéis frequentemente aplicam backports. O número exibido por um pacote pode ser diferente da versão upstream e ainda conter a correção. Compare sempre o pacote com o advisory da distribuição ou do painel. Não execute prova de conceito em produção; os comandos deste boletim são de inventário e verificação.

Precisa validar seu ambiente?

Conte com gerenciamento técnico de servidores

A atualização de aplicações do cliente e a administração do servidor têm escopos diferentes. Fale com a equipe para avaliar o ambiente e o plano adequado.