← Home

PHP2Shell: falhas críticas expõem 70% da web a execução remota de código

PHP2Shell: quando o motor de linguagem inteira falha

A equipe de segurança do PHP liberou no dia 21 de outubro de 2026 correções de emergência para duas vulnerabilidades de execução remota de código (RCE) que afetam praticamente toda a base de servidores PHP ativos na internet. As vulnerabilidades, catalogadas como CVE-2026-109618 e CVE-2026-109619 e batizadas pela comunidade de "PHP2Shell", residem diretamente no motor de runtime do PHP — não em qualquer framework ou CMS — o que significa que até uma página de "Hello World" em PHP pode ser comprometida remotamente sem autenticação, mesmo quando o código da aplicação está completamente seguro.

A descoberta foi feita de forma colaborativa por pesquisadores de segurança das empresas Wiz, Calif e OpenAI, e a gravidade do problema foi avaliada como 9.2 na escala CVSS v4.0. O alcance é tão amplo que a NSA dos EUA recomendou que sites incapazes de aplicar o patch imediatamente coloquem seus servidores fora do ar, enquanto o UK National Cyber Security Centre (NCSC) emitiu alerta similar para organizações britânicas.

O que aconteceu

Tudo começou com um vazamento na noite de 20 de outubro. Um post no Hacker News anunciou que duas vulnerabilidades RCE no PHP, classificadas como CVSS 10.0, seriam divulgadas em 22 de outubro. O post não fornecia evidências técnicas, limitando-se a uma fonte citada como "confie,mano". A equipe de segurança da watchTowr confirmou que as informações eram reais, que os achados estavam sob embargo e que não poderia revelar detalhes antes da data agendada. PHP publicou seu próprio alerta naquela mesma noite, antecipando a data de lançamento para 21 de outubro — um dia antes do planejado — com a ressalva de que poderia liberar correções ainda mais caso surgisse evidência de exploração ativa.

A confirmação veio em 14h UTC: PHP 8.5.12, 8.4.27, 8.3.36 e 8.2.35 foram lançados com os patches. A PHP core developer Gina Peter Banyard alertou que nenhuma mitigação parcial bloquearia completamente os ataques, e que a atualização era a única defesa permanente.

Os mecanismos de exploração

As duas vulnerabilidades pertencem à categoria Use-After-Free (CWE-416), mas exploram mecanismos diferentes dentro do PHP.

A CVE-2026-109618 é causada por corrupção de memória quando o interpretador enfrenta uma situação de esgotamento de memória (OOM — Out Of Memory). Quando a memória se esgota, o PHP aborta a requisição usando uma função longjmp(). Se isso acontecer enquanto os dados internos da requisição não foram totalmente inicializados, o procedimento de encerramento trata dados inválidos como se fossem válidos. Em configurações com Apache mod_php, isso é particularmente perigoso: o procedimento de encerramento é chamado incondicionalmente, mesmo se a inicialização da requisição falhar, e a análise automática do corpo da requisição pode esgotar o limite de memória antes que qualquer código de aplicação comece a rodar. Um exploit demonstrado funciona com configurações padrão de memória e limites de input.

A CVE-2026-109619 envolve um estado global obsoleto na memória. A vulnerabilidade permite que um atacante leia a memória de um processo worker do PHP — incluindo senhas, tokens de autenticação, chaves de API e certificados de requisições anteriores — sem primeiro alcançar a execução remota de código. O caminho de exploração confirmado passa pelo session.upload_progress.enabled, que está ativo por padrão e pode acessar o tratamento de sessões antes do PHP terminar de configurar uma requisição.

Ambos os bugs estão presentes no código desde PHP 5.4 — mais de uma década de código. A classe de vulnerabilidade que os engloba (Use-After-Free) foi identificada como área de preocupação décadas atrás, mas nenhuma ação foi tomada na época porque não se acreditava que um exploit seria viável no contexto do PHP.

O impacto na internet

A proporção do problema é difícil de superestimar. Segundo dados do W3Techs, o PHP é usado em 69,3% dos sites cuja linguagem de servidor é conhecida — o que significa que cerca de 70% de toda a internet pública está exposta. Pesquisadores da Mallory analisaram mais de 7 milhões de sites PHP e descobriram que 46,1% dos sites que revelam sua versão do PHP estão executando uma versão EOL (sem suporte). Silas Cutler estimou que mais de 1,3 milhão de hosts expostos à internet estão potencialmente vulneráveis; uma busca no Shodan feita por Henk Poley encontrou mais de 1,9 milhão de hosts.

As consequências foram imediatas. Antes mesmo dos patches serem lançados, a Cloudflare atualizou suas regras de WAF para mitigar os ataques e já observava tentativas ativas de exploração. A CERT-EU emitiu recomendação de contenção, e organizações em múltiplos países tomaram medidas drásticas:

- Governo holandês (Overheid.nl): site desligado preventivamente - Governo finlandês: todos os serviços públicos desligados - Ministério do Interior francês: todos os sites desativados - Plataforma de comunicação escolar dinamarquesa: fora do ar - Universidades de Viena e Freiburg (Alemanha): serviços indisponíveis - Wikimedia Foundation: vários serviços de suporte desligados - 4chan e Something Awful: sites offline - Japão: Final Fantasy XIV, Umamusume: Pretty Derby e diversos e-commerces desligados

A NSA reforçou que, se não for possível atualizar imediatamente, a única alternativa segura é colocar o site offline.

O que fazer

A atualização do runtime para PHP 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 é a única solução completa. Mas o quadro se complica para administradores com versões mais antigas: PHP 8.1 e versões anteriores não recebem mais atualizações do projeto PHP (8.1 já alcançou o fim do suporte em novembro de 2025, e 8.2 chega ao EOL em 31 de dezembro de 2026).

A equipe do PHP publicou backports de código-fonte para PHP 7.4, 8.0 e 8.1 para quem precisa compilar a partir do source ou não tem acesso a um fornecedor LTS. Distribuições Linux que embutem pacotes PHP mais antigos podem ter os patches backported — organizações com PHP via pacote de distribuição devem verificar os advisories de seus fornecedores.

As medidas de mitigação temporária compartilhadas pela equipe do PHP são parciais e não protegem contra todas as vetores de ataque:

- Para CVE-2026-109618: definir `memory_limit=-1` via php_admin_value no pool do FPM ou configuração do Apache (não pode ser sobrescrito pelo app), `post_max_size` baixo (8M para uploads desnecessários, 32M quando uploads são necessários), e usar limites de container/cgroup com política que mate apenas o worker afetado. Não use `RLIMIT_AS` ou `RLIMIT_DATA` como substituto — o PHP alerta que eles podem desencadear o mesmo caminho vulnerável. - Para CVE-2026-109619: desativar `session.upload_progress.enabled=0` e reiniciar todos os workers. No PHP 8.5, também definir `fatal_error_backtraces=0`. No entanto, desativar o upload progress pode quebrar funcionalidades legítimas de upload de arquivos que dependem do acompanhamento de progresso.

A Corelight liberou regras de detecção open source (Zeek e Suricata) para equipes defensivas que não conseguem aplicar patches imediatamente.

O que isso significa

O PHP2Shell é uma das vulnerabilidades de motor de linguagem mais amplamente impactantes já descobertas — comparable em escala ao Heartbleed, mas em vez de afetar um protocolo criptográfico usado por servidores específicos, atinge a linguagem de programação que roda o site do seu vizinho, o e-commerce local, o portal do governo e o sistema de saúde. O fato de que a classe de bug (Use-After-Free) era conhecida há décadas, mas não foi considerada explorável no PHP, mostra que a segurança de runtimes interpretados precisa de atenção contínua, não apenas de verificações pontuais.

A descoberta por pesquisadores de IA (Wiz, OpenAI, Calif) também levanta uma questão em aberto: à medida que modelos de IA e agentes autônomos se tornam ferramentas de descoberta de vulnerabilidades, qual é a linha entre análise de segurança legítima e geração de exploits? A própria PHP2Shell foi encontrada por pesquisadores que usaram IA como parte de seu processo — e a mesma IA que descobriu a falha agora está ajudando a mitigá-la.

Fontes: BleepingComputer, The Hacker News, CyberSecureFox

✓ Fontes independentes cruzadas e verificadas antes da publicação