Em 20 e 21 de outubro de 2026, o mundo da tecnologia acordou com um alerta incomum. Foram identificadas duas falhas críticas no próprio núcleo do PHP, batizadas pela comunidade de PHP2Shell, que possibilitam que um atacante execute código remotamente em servidores web sem precisar de login. Como o PHP está por trás de cerca de 70% dos sites cuja linguagem de servidor é conhecida, incluindo WordPress, MediaWiki e muitas lojas virtuais, o problema passou a ser de praticamente todas as empresas com presença na internet.
Este artigo explica o que é a falha, como ela veio a público e, principalmente, o que ela ensina. As organizações que já operam um Sistema de Gestão de Segurança da Informação (SGSI) baseado na ISO/IEC 27001:2022 não ficaram imunes, mas sabem onde o PHP roda, quem decide o que fazer e em quanto tempo conseguem corrigir. Essa diferença, em um incidente de escala mundial, vale horas, e horas, neste caso, valem muito.
O que é a falha PHP2Shell?
PHP2Shell é o nome dado ao par de vulnerabilidades CVE-2026-109618 e CVE-2026-109619, ambas classificadas como críticas, com nota 9,2 de 10 no CVSS v4.0. As duas permitem execução remota de código (RCE) por um atacante não autenticado, ou seja, alguém que não tem nenhuma conta no sistema pode, com requisições preparadas, assumir o controle do servidor.
De forma simplificada, o problema está na maneira como o PHP lida com situações de falta de memória e de erro fatal durante o processamento de uma requisição:
|
CVE |
O que acontece |
Consequência |
|---|---|---|
|
CVE-2026-109618 |
Uma condição de falta de memória, provocada durante o tratamento de dados de upload de arquivos, interrompe o PHP quando dados internos da requisição estão só parcialmente inicializados. A rotina de limpeza depois trata esses dados inválidos como válidos. |
Vazamento de memória do servidor (no estilo do antigo Heartbleed) e execução remota de código |
|
CVE-2026-109619 |
Um estado interno que pertence a uma requisição sobrevive depois que a memória que o sustentava foi liberada. Uma requisição seguinte, atendida pelo mesmo processo, pode usar esse estado “velho”. |
Execução remota de código |
Três pontos tornam o caso especialmente grave:
-
Está no núcleo da linguagem. Não é um plugin ou um CMS específico. A falha está no próprio PHP, então afeta qualquer aplicação que rode sobre ele, nos dois modos mais comuns de execução (mod_php e PHP-FPM).
-
Atinge praticamente todas as versões. Segundo os pesquisadores, qualquer servidor com PHP 5.4.0 ou posterior pode estar vulnerável. As correções oficiais saíram apenas para as versões suportadas: 8.5.12, 8.4.27, 8.3.36 e 8.2.35.
-
Versões antigas ficaram sem remédio. PHP 5 e PHP 7 já estão fora de suporte e não receberão correção oficial. O PHP 8.2 deixa de ser suportado em 31 de dezembro de 2026.
Como aconteceu a falha PHP2Shell?
A falha foi tratada em divulgação coordenada por quase três meses, mas os detalhes vazaram um dia antes da correção e os ataques começaram antes do patch. É esse descompasso que transformou um problema técnico em uma corrida mundial.
|
Data (2026) |
Evento |
|---|---|
|
1º de agosto |
Pesquisadores da Calif encontram múltiplos caminhos para execução remota de código |
|
11 de agosto |
A Calif reporta o primeiro bug ao projeto PHP e inicia a divulgação coordenada |
|
24 de agosto |
A Wiz Research reporta, de forma independente, as mesmas vulnerabilidades |
|
20 de outubro |
Os detalhes vazam antes da data prevista; a watchTowr confirma a execução remota de código |
|
21 de outubro, 07h43 UTC |
A Cloudflare relata os primeiros ataques e publica regras de WAF |
|
21 de outubro, 14h00 UTC |
O PHP publica as versões corrigidas e os pesquisadores divulgam os detalhes |
A raiz técnica não é nova. A classe de problema ligada ao limite de memória do PHP é conhecida desde 2004, e, em 2026, três equipes diferentes conseguiram, de forma independente, transformá-la em exploração funcional. Ao mesmo tempo, fornecedores como Cloudflare e Akamai registraram varreduras automatizadas em escala mundial procurando servidores vulneráveis.
A lição de processo é que entre o vazamento e a correção oficial houve uma janela de quase 24 horas em que a única defesa era controle compensatório (bloqueio na borda, WAF, redução de exposição). Quem não sabia quais servidores rodavam PHP, não conseguiu nem começar.
Por que o impacto da falha é mundial?
A Palo Alto Networks identificou mais de 22,6 milhões de instâncias expostas potencialmente vulneráveis já no dia da divulgação. O número reflete três características do PHP que se aplicam a empresas de qualquer porte:
-
Onipresença: Sites institucionais, lojas virtuais, portais de clientes, intranets, ERPs e sistemas legados usam PHP, muitas vezes sem que a área de negócio saiba disso.
-
PHP “escondido”: A linguagem vem embarcada em produtos de terceiros: appliances, painéis de hospedagem, ferramentas de monitoramento e soluções SaaS. O centro nacional de cibersegurança da Holanda (NCSC-NL) chegou a publicar uma lista de produtos com dependência de PHP potencialmente afetados.
-
Terceirização: Muitas empresas não administram o próprio servidor: dependem de agência, hospedagem ou fornecedor de software. A vulnerabilidade é da empresa, mas a correção está na mão de outra pessoa.
Como alertaram especialistas, uma execução remota de código é a porta de entrada típica para instalação de webshells, roubo de dados, movimentação lateral na rede e, no fim da cadeia, ransomware. Para quem trata dados pessoais, isso também significa possível incidente com obrigação de comunicação à ANPD e aos titulares, nos termos da LGPD.
Como as empresas poderiam ter se prevenido?
Nenhum controle impede que uma linguagem tenha uma falha desconhecida (um zero-day). O que a ISO 27001 faz é garantir que, quando a falha aparece, a empresa já tenha a base pronta: saber o que tem, reduzir a superfície de ataque, detectar abuso e reagir rápido. A tabela abaixo relaciona os controles do Anexo A da ISO/IEC 27001:2022 (detalhados na ISO/IEC 27002:2022) ao cenário PHP2Shell.
|
Controle |
O que ele exige |
Como teria ajudado no PHP2Shell |
|---|---|---|
|
5.9 Inventário de informações e outros ativos associados |
Inventário atualizado de ativos, com responsável definido |
Saber em minutos quais servidores, sites e produtos usam PHP, em qual versão e quem responde por cada um |
|
8.8 Gestão de vulnerabilidades técnicas |
Obter informação sobre vulnerabilidades, avaliar exposição e corrigir em prazo definido |
Processo e prazos de correção para vulnerabilidades críticas já acordados antes da crise; versões fora de suporte (PHP 5 e 7) tratadas como risco conhecido |
|
5.7 Inteligência de ameaças |
Coletar e analisar informações sobre ameaças |
Receber o alerta no dia 20, e não pela imprensa no dia 22 |
|
8.9 Gestão de configuração |
Configurações seguras padronizadas e controladas |
Servidores endurecidos (hardening), com recursos desnecessários do PHP desativados, o que reduz caminhos de exploração |
|
8.20 Segurança de redes e 8.22 Segregação de redes |
Proteção e separação de redes |
WAF na borda já disponível para receber regras emergenciais; servidor web isolado do banco de dados e da rede interna, limitando a movimentação lateral |
|
8.2 Direitos de acesso privilegiado |
Restringir privilégios |
Processo do PHP executando com o mínimo de permissões, o que diminui o estrago de uma execução remota |
|
8.15 Registros e 8.16 Monitoramento de atividades |
Gerar, proteger e analisar logs; detectar comportamento anômalo |
Identificar tentativas de exploração e confirmar se houve ou não comprometimento |
|
8.7 Proteção contra malware |
Detecção e prevenção de código malicioso |
Detectar webshells e arquivos PHP estranhos plantados após a exploração |
|
8.13 Backup das informações |
Cópias testadas e protegidas |
Restaurar com segurança um ambiente comprometido |
|
5.19 a 5.22 e 5.23 Fornecedores e serviços em nuvem |
Requisitos de segurança em contrato, monitoramento de fornecedores e da cadeia de TIC |
Contratos com hospedagem, agência e fornecedores de software prevendo prazo de correção e dever de comunicar incidentes |
|
8.32 Gestão de mudanças e 8.31 Separação de ambientes |
Mudanças controladas, inclusive emergenciais; homologação separada da produção |
Aplicar um patch de emergência no mesmo dia, testado em homologação e sem derrubar o negócio |
|
5.24 Planejamento e preparação da gestão de incidentes |
Papéis, responsabilidades e procedimentos de resposta definidos |
Saber quem convoca, quem decide tirar um sistema do ar e quem comunica clientes e a ANPD |
|
5.29 e 5.30 Continuidade e prontidão de TIC |
Manter a segurança durante a disrupção e ter capacidade de recuperação |
Plano para operar em modo reduzido (site em manutenção ou somente leitura) enquanto a correção não chega |
Os controles só funcionam porque estão amarrados às cláusulas da norma. A avaliação de riscos (6.1.2) é o que coloca “servidores web expostos com software de terceiros” na lista de riscos relevantes. O tratamento de riscos (6.1.3) e a Declaração de Aplicabilidade são o que transformam esse risco nos controles acima. E a auditoria interna (9.2) e a análise crítica pela direção (9.3) são o que garantem que o inventário e o processo de patch existam de verdade, e não apenas no papel.
O que fazer agora: Correção ligada aos controles
Com a falha já pública e explorada, a prioridade é atualizar o PHP e verificar se houve comprometimento. As ações abaixo seguem as recomendações das autoridades de cibersegurança e de pesquisadores, organizadas em fases e relacionadas aos controles da ISO 27001:
Nas primeiras horas: conter
-
Acionar o processo de resposta a incidentes e tratar o caso como evento de segurança, com responsável e registro desde o início. Controles 5.24, 5.25 e 6.8.
-
Levantar todos os ativos com PHP, priorizando os expostos à internet. Não procure só versões antigas: todas podem estar afetadas. Inclua appliances, painéis e softwares de terceiros que trazem PHP embarcado. Controle 5.9.
-
Atualizar para as versões corrigidas (8.5.12, 8.4.27, 8.3.36 ou 8.2.35), usando o fluxo de mudança emergencial. Controles 8.8 e 8.32.
-
Onde não for possível atualizar de imediato, aplicar controles compensatórios: regras de WAF na borda, bloqueio temporário de envios do tipo upload de arquivos (multipart/form-data) onde a aplicação permitir, e os ajustes de configuração temporários indicados no aviso oficial do PHP. Controles 8.9, 8.20 e 8.26.
-
Se nada disso for viável a tempo, tirar o sistema do ar ou colocá-lo em modo somente leitura. É uma decisão de negócio, e deve ser tomada por quem tem autoridade para isso. Controles 5.29 e 5.30.
Nos primeiros dias: investigar e erradicar
-
Procurar sinais de comprometimento, especialmente para sistemas que ficaram expostos entre 20 e 21 de outubro: webshells, arquivos PHP novos em pastas de upload, contas criadas, tarefas agendadas e conexões de saída incomuns. Controles 8.15, 8.16 e 8.7.
-
Preservar evidências (logs, imagens de disco) antes de limpar ou reinstalar. Controle 5.28.
-
Em caso de comprometimento, reconstruir a partir de fonte confiável e restaurar dados de backup íntegro, trocando senhas, chaves e tokens que estavam no servidor. Controles 8.13, 5.17 e 8.24.
-
Cobrar fornecedores (hospedagem, agência, fabricantes de produtos com PHP embarcado) por evidência de correção e por comunicação de qualquer incidente. Controles 5.19 a 5.22.
-
Avaliar a LGPD: se houve acesso indevido a dados pessoais com risco ou dano relevante aos titulares, comunicar a ANPD e os titulares no prazo regulamentar. Controles 5.31 e 5.34.
Nas próximas semanas: aprender e melhorar
-
Eliminar versões sem suporte. PHP 5 e 7 não terão correção, e o PHP 8.2 sai de suporte no fim de 2026; o risco de mantê-los deve ser tratado ou formalmente aceito pela direção. Controle 8.8 e cláusula 6.1.3.
-
Rever a avaliação de riscos incluindo dependências de software de terceiros e de fornecedores. Cláusulas 6.1.2 e 8.2.
-
Registrar lições aprendidas e abrir ações corretivas: o inventário estava completo? O alerta chegou a tempo? O patch levou quanto tempo? Controle 5.27 e cláusula 10.2.
-
Levar o caso à análise crítica pela direção, com indicadores como tempo de detecção, tempo de correção e percentual de ativos atualizados. Cláusulas 9.1 e 9.3.
A importância da ISO 27001 para empresas de todos os portes
O PHP2Shell demonstra a importância da ISO 27001 para empresas de todos os portes. A norma não prescreve ferramentas caras, mas estabelece que a organização conheça seus riscos e escolha controles proporcionais a eles. O mesmo princípio se aplica a uma loja virtual com cinco funcionários e a um banco.
|
Perfil |
Como a norma se aplica no cenário PHP2Shell |
|---|---|
|
Pequena empresa com site ou loja virtual |
Um inventário simples, um contrato com a hospedagem que preveja prazo de atualização e um contato definido para emergências já resolvem a maior parte do problema |
|
Média empresa com sistemas próprios |
Processo de gestão de vulnerabilidades, homologação para patches emergenciais, WAF e logs centralizados permitem corrigir no mesmo dia |
|
Grande empresa ou grupo |
Inteligência de ameaças, monitoramento contínuo, segregação de redes e resposta a incidentes estruturada reduzem a janela de exposição de dias para horas |
|
Fornecedor de software ou SaaS |
Desenvolvimento seguro, gestão de dependências e comunicação ágil com clientes viram diferencial comercial e exigência contratual |
A norma é especialmente útil em cenários de incerteza por quatro motivos:
-
Ela é baseada em risco, não em lista de ameaças. Ninguém sabia do PHP2Shell em setembro, mas o risco “software exposto à internet com vulnerabilidade crítica” já estava na avaliação de quem tem um SGSI. A ameaça específica é nova; a resposta, não.
-
Ela define antes quem decide. Em uma crise, a pergunta mais cara é “quem autoriza tirar o site do ar?”. Com papéis e responsabilidades definidos (cláusula 5.3 e controle 5.24), a decisão leva minutos.
-
Ela integra segurança, continuidade e conformidade. O mesmo sistema de gestão trata o patch, a operação em modo reduzido e a avaliação de comunicação à ANPD. Para quem trata dados pessoais, a ISO/IEC 27701 aproxima ainda mais das exigências da LGPD.
-
Ela aprende com cada incidente. O ciclo de monitoramento, auditoria, análise crítica e melhoria contínua (cláusulas 9 e 10) faz com que o próximo incidente encontre a empresa mais preparada do que o anterior.
Por fim, a certificação ISO 27001 também gera confiança no mercado: em um momento como este, clientes e parceiros querem saber se o fornecedor tem processo para responder, e o certificado é a evidência independente de que tem.
Como preparar sua empresa para responder a incidentes de segurança?
O PHP2Shell não será a última falha crítica em uma tecnologia utilizada por grande parte dos sites na internet. Incidentes como este podem afetar empresas de qualquer porte ou segmento, e a diferença está na preparação antes do alerta. Inventário, processo de correção, monitoramento, contratos com fornecedores e uma equipe que saiba como agir, são algumas das ações que devem ser tomadas.
É exatamente isso que a ISO 27001 organiza. A norma estabelece processos para que a segurança da informação faça parte da gestão da empresa e, diante de uma nova vulnerabilidade, seja possível identificar os riscos e agir com rapidez.
A Dédalo Security atua na implementação da ISO 27001 e na preparação de empresas para a certificação. Entre em contato com um consultor e proteja sua empresa.
Fontes:
-
Sansec: PHP2Shell, Critical PHP RCE (CVE-2026-109618, CVE-2026-109619)
-
Unit 42, Palo Alto Networks: Threat Brief sobre CVE-2026-109618 e CVE-2026-109619
-
Techzine Global: Serious vulnerabilities in PHP, emergency patches on the way
-
BigGo Finance: Critical PHP Vulnerability Affects 70% of Websites Worldwide
-
Yahoo Tech: What to know about critical PHP vulnerability threatening Internet
-
Forbes: Critical PHP Security Warning Issued, Apply Emergency Patch Today
-
ABNT NBR ISO/IEC 27001:2022 e ABNT NBR ISO/IEC 27002:2022