O seu site corre em PHP? A falha que obrigou os Países Baixos a desligar o Estado

O seu site corre em PHP? A falha que obrigou os Países Baixos a desligar o Estado

Os Países Baixos passaram a manhã de 21 de outubro com parte dos serviços digitais do Estado desligados. A identidade digital DigiD, o portal do cidadão MijnOverheid, o site da Tweede Kamer (câmara baixa do parlamento) e até a página do próprio centro nacional de cibersegurança ficaram fora do ar por precaução. Não houve nenhum ataque confirmado a estes sites. A causa foram duas vulnerabilidades críticas no PHP, a linguagem de programação que serve uma grande parte da web, cujos pormenores foram divulgados antes de haver correção. Segundo o governo neerlandês, vários sites foram retirados do ar por precaução a 21 de outubro de 2026, por causa de duas falhas num software usado por muitos sites.

Resposta rápida: As vulnerabilidades CVE-2026-109618 e CVE-2026-109619 (conhecidas como «PHP2Shell», CVSS v4.0 de 9,2) permitem executar código remotamente sem autenticação em servidores com PHP. A correção saiu a 21 de outubro nas versões 8.5.12, 8.4.27, 8.3.36 e 8.2.35. Quem gere sites ou aplicações em PHP deve atualizar de imediato ou confirmar com o fornecedor de alojamento que o fez. Se não o puder fazer, deve isolar os sistemas expostos à Internet.

Um apagão preventivo que se espalhou ao longo do dia

A lista de sites desligados foi aumentando com as horas. Entre eles estavam o MijnOverheid.nl, o DigiD e o site da Tweede Kamer, e também o site e a aplicação de notícias da RTL e o site de tecnologia Tweakers. O Nationaal Cyber Security Centrum (NCSC) retirou o próprio site do ar, tal como a Autoriteit Persoonsgegevens, a autoridade neerlandesa de proteção de dados.

Também o setor privado e os serviços públicos regionais seguiram a recomendação. Desligaram sites o Porto de Roterdão, a federação de futebol KNVB, os cinco maiores partidos políticos e vários hospitais de todo o país. Segundo um levantamento da agência ANP, pelo menos 13 das 25 regiões de segurança neerlandesas tinham os sites em baixo. Foram ainda desligadas partes da rede informática partilhada do ensino superior e da investigação, que serve universidades, politécnicos, hospitais académicos e institutos de investigação.

Os Países Baixos não foram caso único. A Bélgica também desligou temporariamente os sites do Ministério dos Negócios Estrangeiros, e houve medidas semelhantes noutros países europeus, como a Finlândia. A recomendação veio de cima: a CERT-EU aconselhou as organizações que não conseguissem aplicar as correções a tempo a ponderar retirar os sites afetados do ar.

O que está em causa nas falhas PHP2Shell

O problema está no interpretador PHP e não numa aplicação em particular. Por isso, qualquer site que corra uma versão vulnerável fica exposto, seja WordPress, Drupal, Joomla ou uma loja Magento. O PHP descreve a CVE-2026-109618 como execução remota de código através da corrupção causada pela falta de memória durante a limpeza do pedido, e a CVE-2026-109619 como execução remota de código através de um estado global antigo que um pedido seguinte reutiliza no mesmo processo.

Na prática, um atacante pode tomar conta do servidor com um pedido HTTP preparado para o efeito. Segundo o NCSC neerlandês, basta um simples pedido POST para explorar as vulnerabilidades. O PHP afirma que todas as instalações que servem pedidos web estão em risco, incluindo PHP-FPM, Apache com mod_php, php-cgi, FrankenPHP e LiteSpeed. O risco é maior com mod_php, onde um pedido não autenticado pode desencadear a exploração antes de o código da aplicação correr.

IdentificadorCVSS v4.0TipoAutenticação
CVE-2026-1096189,2 (crítica)RCE por corrupção de memória após falta de memória (OOM)Não exigida
CVE-2026-1096199,2 (crítica)RCE por reutilização de estado global antigoNão exigida

Versões afetadas e corrigidas

A 21 de outubro de 2026, o PHP publicou as versões corrigidas 8.5.12, 8.4.27, 8.3.36 e 8.2.35. As fontes não coincidem quanto às versões antigas afetadas. O intervalo indicado inicialmente pela CERT-EU (PHP 5 e posteriores) e o da Sansec (PHP 5.4 e posteriores) não foram confirmados pelo PHP. Já se sabe, porém, que os ramos sem suporte ficam de fora. O CNCS sublinha que as versões 8.1 e anteriores estão em fim de vida e não vão receber correção.

Ramo PHPVersão corrigidaSituação
8.58.5.12Suportado
8.48.4.27Suportado
8.38.3.36Só correções de segurança
8.28.2.35Só correções de segurança
8.1 e anterioresSem correção oficialFim de vida: migrar ou isolar

Cronologia: da descoberta à fuga de informação

As falhas foram encontradas por equipas que usaram modelos de inteligência artificial na investigação. Os investigadores da Calif, a trabalhar com a OpenAI, comunicaram a primeira falha ao PHP a 11 de agosto, e a Wiz comunicou uma segunda a 24 de agosto. A correção estava a ser preparada com sigilo, mas a informação saiu antes do tempo.

Data (UTC)Acontecimento
11 ago 2026A Calif comunica a primeira falha ao PHP
24 ago 2026A Wiz comunica as falhas à equipa de segurança do PHP
20 out 2026Fuga de informação antes da divulgação coordenada; o PHP anuncia uma atualização de emergência; a CERT-EU publica o aviso 2026-018
21 out, 07:43A Cloudflare reporta os primeiros ataques
21 out, manhãSites públicos e privados desligados nos Países Baixos
21 out, cerca das 14:00O PHP publica as versões corrigidas
22 out 2026Data prevista inicialmente para a divulgação coordenada

Quanto à exploração ativa, as fontes não dizem o mesmo. O governo neerlandês afirmou não haver sinais de exploração ativa das vulnerabilidades. Já a Sansec indica que a Cloudflare reportou os primeiros ataques às 07:43 UTC de 21 de outubro, antes da publicação da correção às 14:00 UTC. O regresso à normalidade foi gradual: ao fim da tarde o MijnOverheid voltou ao ar, enquanto o site do DigiD continuava em baixo, embora já fosse possível usar o DigiD para entrar noutros sites.

Como mitigar e o que procurar

Atualizar é a única solução definitiva. A falha está no motor do PHP e não pode ser corrigida no código da aplicação. O CNCS publicou um alerta e, segundo a CNN Portugal, recomenda inventariar todas as instalações de PHP, incluindo as menos evidentes, e monitorizar os processos criados pelo PHP. As medidas prioritárias são estas:

  • Atualizar para 8.5.12, 8.4.27, 8.3.36 ou 8.2.35, ou aplicar os pacotes com a correção disponibilizados pela distribuição Linux.
  • Dar prioridade aos sistemas acessíveis a partir da Internet e confirmar com o fornecedor de alojamento ou do sistema operativo se os pacotes corrigidos já estão disponíveis.
  • Em versões sem suporte, migrar para um ramo suportado, retirar o sistema da Internet ou colocá-lo atrás de VPN ou web application firewall.
  • Não confiar em mitigações aplicadas por ini_set() ou .user.ini: o PHP e a CERT-EU dizem que estas não contam.
  • Ter cuidado com os limites de memória do sistema: o aviso da CVE-2026-109618 desaconselha RLIMIT_AS e RLIMIT_DATA, porque fazem falhar o mmap() e ativam o caminho vulnerável.

Até agora não foi publicada uma lista consolidada de indicadores de comprometimento (IOCs). As autoridades indicam que sinais procurar. Se houver suspeita de intrusão, o CNCS recomenda isolar o servidor, preservar os registos do servidor web e do PHP e procurar webshells e ficheiros novos na raiz web. O NCSC neerlandês mantém um repositório público com informação operacional que vai sendo atualizado. Convém lembrar que um sistema atualizado depois de ter estado exposto pode já ter sido comprometido.

Porque é que isto importa em Portugal

O PHP está presente em muitos sites institucionais, lojas online de PME e plataformas municipais, muitas vezes em alojamento partilhado onde o cliente nem sabe que versão está a correr. O caso neerlandês mostra que até organizações com equipas de segurança preferiram ficar offline algumas horas a correr o risco. As PME devem perguntar já ao fornecedor de alojamento se a atualização foi aplicada.

Para as entidades abrangidas pelo Regime Jurídico da Cibersegurança (Decreto-Lei n.º 125/2025, que transpõe a NIS2), a gestão de vulnerabilidades e a resposta rápida a avisos como o do CNCS/CERT.PT fazem parte das obrigações de segurança. Um incidente com impacto significativo terá de ser notificado. Se houver acesso a dados pessoais (os investigadores demonstraram que é possível ler memória com palavras-passe e tokens), aplicam-se também as regras de notificação de violações do RGPD à CNPD.

Perguntas frequentes

O que é o PHP2Shell?

É o nome dado a duas vulnerabilidades críticas no interpretador PHP, a CVE-2026-109618 e a CVE-2026-109619, ambas com CVSS v4.0 de 9,2. Permitem a execução remota de código sem autenticação em servidores web vulneráveis.

Os sites neerlandeses foram atacados?

Não há confirmação disso. Os sites foram desligados por precaução, até à publicação da correção. O governo neerlandês disse não ter sinais de exploração ativa, embora a Cloudflare tenha reportado os primeiros ataques antes do lançamento da correção.

Que versões do PHP devo instalar?

As versões corrigidas são a 8.5.12, a 8.4.27, a 8.3.36 e a 8.2.35. O PHP 8.1 e as versões anteriores estão em fim de vida e não recebem correção oficial, pelo que devem ser migrados ou isolados da Internet.

Tenho um site WordPress num alojamento partilhado. O que devo fazer?

A correção é aplicada no servidor e não no WordPress. Contacte o fornecedor de alojamento para confirmar que o PHP foi atualizado e verifique no painel de controlo que versão está a ser usada pelo seu site.

Esta informação tem caráter noticioso e baseia-se em dados divulgados publicamente pelo NCSC/Governo dos Países Baixos, pelo Rijksoverheid, pelo CNCS, pelo NCSC-NL (GitHub) e pela Sansec.