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
- Faça um backup completo (arquivos e banco de dados) antes de qualquer mudança, para poder voltar atrás se algo der errado.
- Descubra a versão em uso com
php -vno servidor ou pelo painel da hospedagem. No WordPress, a tela Saúde do Site (Ferramentas) mostra a versão do PHP. - 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.
- 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.
- 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.
- 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.
- Procure sinais de invasão (veja abaixo) e, se encontrar algum, trate o servidor como comprometido.
- 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. - 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.
