O que aconteceu

A equipe do PHP, linguagem usada por boa parte dos sites do mundo, avisou na terça-feira (20) que havia identificado duas falhas graves e pediu que os administradores atualizassem seus sistemas assim que o conserto fosse liberado. Por volta das 13h45 (GMT) de quarta, a nova versão já estava disponível.

O problema é que, antes disso, surgiram relatos de invasões em andamento. A Cloudflare, empresa de segurança e infraestrutura web, informou que os ataques começaram a aparecer e que atualizou as regras do seu firewall como medida provisória. Diante do risco, órgãos públicos preferiram desligar os próprios sites e esperar o patch, em vez de arriscar uma invasão.

Quem saiu do ar

  • Países Baixos: o portal do governo Overheid.nl, o Porto de Roterdã, a federação de futebol, os sites dos cinco principais partidos políticos e vários hospitais ficaram temporariamente indisponíveis. Até o site do centro nacional de cibersegurança holandês foi desligado.
  • Finlândia: a Valtori, provedora estatal de serviços de TI, retirou do ar serviços de rede pública do governo "por precaução".
  • França: o Ministério do Interior informou que sites de prefeituras foram tirados do ar temporariamente até a liberação de uma correção pelo responsável pelo framework.

Por que a falha preocupa tanto

O PHP roda em cerca de 70% a 75% dos sites cuja linguagem de servidor é conhecida, segundo a W3Techs, e sustenta o WordPress, que alimenta aproximadamente 43% da web. Como tantos sites dependem do mesmo software, especialistas alertam que os atacantes não precisam escolher alvos um a um: basta varrer a internet atrás de servidores com versões vulneráveis.

Estimativas citadas pela imprensa brasileira falam em mais de 1,3 milhão de servidores expostos. O risco é maior para sites pequenos, de pessoas e organizações com pouco suporte técnico, muitas vezes em hospedagem compartilhada, onde o cliente não controla o servidor e depende de o provedor aplicar a atualização.

Os relatos descrevem falhas que permitem execução remota de código sem senha, ou seja, o invasor consegue assumir o controle do site sem precisar de login. Os números de identificação (CVE) e as versões corrigidas circulam em reportagens, mas devem ser conferidos no aviso oficial em php.net.

O que fazer agora

  1. Faça um backup completo (arquivos e banco de dados) antes de qualquer mudança, para poder voltar atrás se algo der errado.
  2. Publicidade
  3. Descubra a versão em uso com php -v no servidor ou pelo painel da hospedagem. No WordPress, a tela Saúde do Site (Ferramentas) mostra a versão do PHP.
  4. Atualize o PHP para a versão corrigida da sua série. Reportagens citam as versões 8.5.12, 8.4.27, 8.3.36 e 8.2.35, mas confirme os números no aviso oficial em php.net. A versão 8.1 e as anteriores não teriam correção oficial e precisam ser migradas.
  5. Fale com a hospedagem se o site está em servidor compartilhado e confirme se o provedor já aplicou o patch. Em painéis como o cPanel, a opção "Selecionar versão do PHP" costuma permitir a troca.
  6. Ative um firewall de aplicação (WAF), como o da Cloudflare, como proteção provisória enquanto a atualização não é feita. Ele reduz o risco, mas não substitui o patch.
  7. Se não puder atualizar agora, considere colocar o site em modo de manutenção ou tirá-lo do ar temporariamente, como fizeram os governos.
  8. Procure sinais de invasão (veja abaixo) e, se encontrar algum, trate o servidor como comprometido.
  9. Usuários comuns não precisam instalar nada; a correção cabe a donos de sites e empresas de hospedagem.

Passo a passo em servidores Linux

Em Debian e Ubuntu, a atualização costuma seguir estes comandos. Ajuste o nome dos pacotes à sua instalação e confira a versão instalada depois.


php -v
sudo apt update
sudo apt install --only-upgrade 'php*'
sudo systemctl restart php-fpm   # ou apache2 / nginx, conforme o seu ambiente
php -v

Se o PHP vem de um repositório de terceiros ou de contêineres Docker, atualize a imagem ou o repositório e reinicie os serviços. Lembre-se de que a atualização só vale depois que o processo do PHP é reiniciado.

Como saber se o site foi invadido

  • Liste arquivos PHP alterados nos últimos dias: find /var/www -name "*.php" -mtime -3.
  • Publicidade
  • Desconfie de arquivos desconhecidos em pastas de envio (como uploads), de tarefas agendadas novas e de usuários administradores que você não criou.
  • Revise os logs de acesso em busca de requisições incomuns ou de picos de tráfego nas horas anteriores ao patch.
  • Peça à hospedagem uma varredura de malware, ou use um plugin de segurança no WordPress.

Se houver suspeita de invasão

  • Restaure um backup anterior ao incidente, depois de atualizar o PHP, para não ser invadido de novo.
  • Troque senhas de painel, banco de dados, FTP e administradores, e gere novas chaves de segurança (salts) no wp-config.php.
  • Atualize WordPress, temas e plugins, e remova os que não usa.
  • Avise quem usa o site se dados de usuários puderem ter sido expostos.

Boas práticas para o futuro

  • Ative as atualizações automáticas de segurança do sistema e do WordPress.
  • Mantenha backups automáticos e teste a restauração de vez em quando.
  • Acompanhe os avisos de segurança do php.net e do seu provedor de hospedagem.
  • Use autenticação em dois fatores nos painéis e restrinja o acesso administrativo por IP quando possível.