O formulário do seu site pode estar a entregar webshells a quem nem sequer faz login

Um plugin de formulários instalado em mais de meio milhão de sites WordPress voltou a ser o elo fraco. A empresa de segurança Wordfence divulgou uma vulnerabilidade crítica no Forminator Forms, da WPMU DEV, que permite a atacantes sem qualquer autenticação carregar ficheiros arbitrários — incluindo ficheiros .php executáveis — para o servidor, abrindo caminho à execução remota de código e ao controlo total do site. A falha, identificada como CVE-2026-15748, tem uma pontuação CVSS de 9,8 em 10 e foi corrigida no final de julho, mas uma fatia significativa das instalações continua por atualizar.

Resposta rápida: A vulnerabilidade CVE-2026-15748 (CVSS 9.8) afeta todas as versões do Forminator Forms até à 1.56.1, inclusive, e foi corrigida na versão 1.56.2, lançada a 31 de julho de 2026. A exploração não exige credenciais nem interação do utilizador, mas depende de o site ter um formulário que combine um campo de upload de ficheiros com um campo de seleção. Atualize já para a versão 1.56.2 ou superior e verifique as pastas de uploads à procura de ficheiros PHP inesperados.

O que falhou, em termos simples

O Forminator é um construtor de formulários por arrastar-e-largar usado para formulários de contacto, pagamentos, inquéritos, sondagens e calculadoras. De acordo com estimativas da Wordfence, o plugin está ativo em mais de 600 mil sites, o que o coloca no lote dos componentes cuja exploração compensa a atacantes que varrem a internet de forma automatizada.

Segundo a análise técnica publicada, o problema reside na função handle_file_upload(). A lista de bloqueio de extensões perigosas usa correspondência exata de chaves, o que permite contorná-la através de chaves de tipo MIME com alternativas separadas por barra vertical, e o manipulador público de submissões aceita configurações de campo de upload controladas pelo atacante, injetadas através de um valor forjado num campo Select. Por outras palavras, não é um único descuido: é o encadeamento de duas fraquezas — validação de tipo de ficheiro insuficiente e confiança em configuração enviada pelo próprio visitante.

Há, contudo, um travão importante. A exploração exige que o site tenha um formulário que contenha simultaneamente um campo de upload de ficheiros e um campo de seleção. Isso reduz a superfície real de ataque, mas não a torna residual: candidaturas a emprego, pedidos de orçamento com anexos ou formulários de suporte com menus pendentes são exatamente esse tipo de combinação.

Ficha técnica

ItemDetalhe
IdentificadorCVE-2026-15748
GravidadeCVSS 9.8 (crítica)
TipoCarregamento de ficheiros arbitrários (CWE-434), com potencial de RCE
ProdutoForminator Forms (WPMU DEV)
Versões afetadasTodas até à 1.56.1, inclusive
Versão corrigida1.56.2
Privilégios necessáriosNenhuns (não autenticado, sem interação)
Condição de exploraçãoFormulário com campo de upload + campo Select
Função vulnerávelhandle_file_upload()

A falha foi catalogada como uma vulnerabilidade crítica de carregamento de ficheiros arbitrários por validação insuficiente do tipo de ficheiro, presente em todas as versões até à 1.56.1 e passível de levar a execução remota de código.

Cronologia

DataAcontecimento
Julho de 2026Investigador conhecido pelo pseudónimo «daroo» reporta a falha através do programa de recompensas da Wordfence
31 de julho de 2026Lançamento da versão 1.56.2 do Forminator Forms, que corrige a vulnerabilidade
17 de agosto de 2026Publicação do aviso público da Wordfence e atribuição do CVE-2026-15748

A falha foi descoberta e reportada por um investigador que usa o pseudónimo «daroo» e foi corrigida na versão 1.56.2, lançada a 31 de julho de 2026. O investigador recebeu uma recompensa de 2048 dólares e, até ao momento, não há exploração confirmada em ambiente real nem prova de conceito pública divulgada. Esta última nota é importante: a ausência de exploração conhecida hoje não significa segurança amanhã, sobretudo quando o aviso público já está online e os detalhes técnicos permitem reconstruir o ataque.

O precedente que devia servir de alarme

Quem administra WordPress já viu este filme este ano. Em abril, uma falha praticamente idêntica num outro plugin de formulários passou de divulgação a exploração em massa em poucos dias. A Wordfence confirmou a 16 de abril de 2026 que os atacantes começaram a explorar a CVE-2026-0740 (Ninja Forms — File Uploads) no próprio dia da divulgação, com exploração em massa entre 9 e 13 de abril e mais de 118 600 tentativas bloqueadas; entre os payloads observados contam-se webshells PHP colocadas na raiz web, ficheiros com magic bytes GIF89a guardados como .php e ficheiros .htaccess maliciosos que transformam tipos de ficheiro inofensivos em PHP executável.

Esses padrões são, hoje, o melhor guia de caça disponível para quem quer verificar se um site com Forminator desatualizado foi tocado — ainda que digam respeito a uma campanha distinta. O ecossistema de formulários tem acumulado casos semelhantes: no WPForms Pro, a CVE-2026-10818 resulta de a validação de tipo de ficheiro ocorrer depois de os blocos do ficheiro serem escritos em disco, e o plugin Super Forms recebeu em julho de 2026 a CVE-2026-14894, classificada com severidade máxima e explorável sem autenticação.

O que fazer nas próximas horas

  • Atualizar o Forminator Forms para a versão 1.56.2 ou superior. Por linha de comandos: wp plugin update forminator e confirmar com wp plugin list --name=forminator --fields=name,version,status.
  • Inventariar os formulários publicados e identificar os que combinam campo de upload com campo de seleção — são os candidatos diretos a exploração.
  • Auditar as diretorias de uploads à procura de ficheiros PHP inesperados e confirmar que eventuais pastas de upload personalizadas têm proteção por .htaccess, conforme recomendado nas análises públicas da falha.
  • Procurar ficheiros .htaccess alterados que reencaminhem extensões inócuas para o interpretador PHP, contas de administrador criadas recentemente e tarefas agendadas desconhecidas.
  • Rever os registos do servidor web em busca de pedidos POST anómalos aos endpoints de submissão de formulários, sobretudo nas datas anteriores à atualização.
  • Desativar e remover plugins que não sejam usados: cada componente instalado é superfície de ataque, mesmo quando inativo.

Se encontrar uma webshell, a atualização do plugin não resolve o problema: o atacante já tem persistência. Nesse cenário, o caminho passa por isolar o site, preservar os registos para análise, repor a partir de uma cópia de segurança anterior ao comprometimento e rodar todas as credenciais — WordPress, base de dados, FTP/SFTP e chaves de API.

Porque é que isto importa em Portugal

Uma boa parte do tecido empresarial português vive em WordPress: sites institucionais de PME, lojas online, autarquias, clínicas, escolas e associações. Muitos desses sites usam formulários para receber candidaturas, marcações ou pedidos com documentos anexados — precisamente o cenário em que esta falha é explorável. E um formulário de contacto raramente é visto como «infraestrutura crítica» dentro da organização, o que faz com que fique meses sem atualizações.

O ângulo legal não é despiciendo. Um site comprometido através de um formulário guarda, quase sempre, dados pessoais das submissões: nomes, contactos, moradas, currículos, por vezes dados de saúde ou financeiros. Se um atacante obtém execução de código no servidor, há acesso potencial a essa base de dados — e uma violação de dados pessoais com dever de notificação à CNPD ao abrigo do RGPD, além da comunicação aos titulares quando o risco for elevado. Manter software desatualizado dificilmente se compagina com a obrigação de adotar medidas técnicas adequadas ao risco.

Para as entidades abrangidas pelo Regime Jurídico da Ciberseguranca, que transpõe a diretiva NIS2 para a ordem jurídica nacional através do Decreto-Lei n.º 125/2025, a exigência é ainda mais explícita: gestão de vulnerabilidades, gestão de ativos e de fornecedores, e notificação de incidentes significativos ao CNCS. Um plugin de terceiros num site público é, para efeitos práticos, risco de cadeia de abastecimento. O CERT.PT, que integra o Centro Nacional de Cibersegurança, divulga regularmente alertas sobre falhas em CMS e respetivos plugins e continua a ser o ponto de contacto nacional para reportar incidentes.

A lição operacional é banal e por isso mesmo tantas vezes ignorada: ativar atualizações automáticas para plugins críticos, manter um inventário do que está instalado, monitorizar os feeds públicos de vulnerabilidades WordPress e testar restauros de cópias de segurança antes de precisar deles a sério.

Perguntas frequentes

Qual é a versão do Forminator que corrige a vulnerabilidade?

A correção chegou na versão 1.56.2, lançada a 31 de julho de 2026. Todas as versões anteriores, até à 1.56.1 inclusive, estão afetadas pela CVE-2026-15748.

O meu site está vulnerável se não tiver formulários com upload de ficheiros?

A exploração descrita exige um formulário que combine um campo de upload de ficheiros com um campo de seleção. Ainda assim, deve atualizar o plugin, porque a configuração dos formulários pode mudar e outras falhas podem surgir.

Já existem ataques a explorar esta falha?

Até ao momento não há exploração confirmada em ambiente real nem prova de conceito pública. Em casos anteriores de falhas de upload em plugins de formulários, porém, a exploração em massa começou poucos dias após a divulgação.

O que fazer se suspeitar que o site já foi comprometido?

Isole o site, preserve os registos, procure ficheiros PHP e .htaccess inesperados nas pastas de uploads, reponha a partir de uma cópia de segurança anterior e rode todas as credenciais. Se houver dados pessoais envolvidos, avalie o dever de notificação à CNPD e reporte o incidente ao CERT.PT.

Esta informação tem caráter noticioso e baseia-se em dados divulgados publicamente pela Wordfence, pelo registo NVD/CVE e por análises técnicas independentes da vulnerabilidade CVE-2026-15748.