Segurança de IA

PHP corrige falhas críticas PHP2Shell reveladas por pesquisa assistida por IA

PHP lançou correções para duas falhas críticas de segurança de memória após investigações de Calif, OpenAI e Wiz com apoio de IA, enquanto foram relatadas tentativas de ataque.

Publicado Atualizado
PHP2ShellPHPPesquisa assistida por IAExecução remota de códigoAtualizações de segurançaSegurança de memória

O PHP lançou em 21 de outubro atualizações emergenciais de segurança para duas vulnerabilidades críticas chamadas em conjunto de PHP2Shell, após investigações envolvendo Calif, OpenAI e Wiz. As versões corrigidas são PHP 8.5.12, 8.4.27, 8.3.36 e 8.2.35. Tanto a CVE-2026-109618 quanto a CVE-2026-109619 têm pontuação de gravidade CVSS 4.0 de 9,2. Nas condições necessárias, um invasor pode executar código sem autenticação; os pesquisadores também demonstraram exposição de memória de processos contendo informações sensíveis.

Os dois avisos listam como afetadas as versões anteriores dentro dessas quatro linhas. Os pesquisadores rastrearam o código afetado até o PHP 5.4, caracterizando um problema do ambiente de execução que atravessa gerações de aplicações. O alerta do PHP abrange implantações web com Apache mod_php, PHP-FPM, php-cgi, FrankenPHP e LiteSpeed. Um ambiente vulnerável pode expor uma aplicação cujo próprio código seja seguro, mas os caminhos de ataque disponíveis dependem da implantação e do ciclo de vida das requisições.

A CVE-2026-109618 envolve o que acontece quando falta memória. O PHP usava um salto não local para abandonar o processamento, potencialmente interrompendo uma operação antes que seus dados internos de requisição estivessem totalmente inicializados. A limpeza poderia então ler esses dados incompletos como se fossem válidos, causando corrupção de memória. Trata-se de uma falha de tratamento de erros e inicialização. O patch substitui a saída abrupta por uma resposta controlada em um ponto seguro de execução, além de encerrar imediatamente o processo em um limite de memória mais alto.

A CVE-2026-109619 envolve estado interno que sobrevive à requisição proprietária de sua memória. Um erro fatal, ou certos diagnósticos durante o encerramento, pode deixar um processo de trabalho persistente com uma referência a uma área já liberada. Outra requisição que chegue ao mesmo processo pode usar o valor antigo antes que a inicialização normal o apague. O aviso descreve casos confirmados envolvendo os rastreamentos de erros fatais do PHP 8.5 e o progresso de upload de sessões. A exploração exige uma operação que deixe estado para trás e outra posterior que o consuma.

O Apache mod_php apresenta o maior risco avaliado: um ataque demonstrado pode alcançar o processamento vulnerável antes da execução de qualquer código da aplicação. O PHP-FPM encerra um processo de trabalho quando a inicialização da requisição falha, bloqueando essa sequência específica. Porém, o aviso sobre estado residual confirma um caminho de FPM dependente da aplicação após uma inicialização bem-sucedida, quando uma operação interrompida deixa estado para outra requisição. As métricas de gravidade indicam alta complexidade de ataque e condições adicionais de execução, além da ausência de necessidade de privilégios ou interação do usuário.

A OpenAI afirmou que a Calif identificou uma falha crítica com o GPT-5.6 Sol por meio de sua iniciativa Patch the Planet. A PHP Foundation registra um relato do pesquisador Ryan A, da Calif, em 11 de agosto e outro relato independente da OpenAI sobre a mesma causa raiz naquele dia. O relato da Calif diz que o conhecimento do pesquisador sobre o histórico de vulnerabilidades do PHP ajudou a direcionar a investigação; a descoberta inicial não dependeu de um modelo inédito nem de uma estrutura especial de testes.

A Wiz investigou e relatou as vulnerabilidades de forma independente, submetendo suas descobertas em 24 de agosto. Sua equipe utilizou Wiz Atlas, Gemini 4 Argon e GPT-5.6 Sol, atribuindo ao Argon trabalho substancial na descoberta, detecção e validação do patch. A Wiz demonstrou ataques contra implantações de teste de WordPress, Drupal e Joomla, além de uma exposição de memória separada. Descreveu testes repetidos e adaptação a diferentes disposições de memória, em vez de um único exploit que funcione automaticamente em todas as instalações de PHP.

Os mantenedores do PHP lideraram as correções e o lançamento. A Foundation informou que sinais do problema de esgotamento de memória haviam surgido ao tratar descobertas de uma auditoria da Quarkslab de 2024 organizada por meio da OSTIF. Decisões sobre compatibilidade, desempenho e extensões tinham atrasado uma solução. A OpenAI contribuiu com apoio à pesquisa e coordenação com provedores de infraestrutura, enquanto a Foundation financiou engenheiros envolvidos na correção. Os novos relatos estabeleceram impacto prático para um problema cujas possibilidades anteriores de exploração permaneciam sem comprovação.

A divulgação foi antecipada depois que os identificadores CVE começaram a circular em 20 de outubro. A Foundation mudou o lançamento coordenado de 22 de outubro às 14:00 UTC para 21 de outubro às 14:00 UTC. Afirmou que os distribuidores ainda precisavam de tempo para concluir os pacotes. Em seguida, a Calif publicou por engano um vídeo de demonstração, posteriormente removido, que revelou alguns detalhes adicionais limitados. As correções e os avisos técnicos já são públicos.

A Cloudflare informou que as proteções padrão chegaram aos clientes que usam seu WAF gratuito ou pago às 03:02 UTC de 21 de outubro e relatou tráfego de ataque com tentativas de variar as cargas. Separadamente, a Foundation disse não ter encontrado exploits funcionais entre as provas de conceito em circulação que inspecionou até o momento da divulgação. Essas observações não estabelecem um número confirmado de servidores comprometidos. A Cloudflare continuou pedindo a aplicação do patch do PHP, e o PHP afirma que mudanças de configuração e filtragem fornecem apenas proteção parcial.

Distribuições e fornecedores de suporte de longo prazo receberam os patches antecipadamente e podem entregar pacotes com correções retroportadas. O PHP 8.1 e as versões anteriores continuam fora do suporte de segurança regular do projeto original, embora o projeto tenha fornecido adaptações mínimas do código-fonte para 7.4, 8.0 e 8.1 devido à gravidade. Esses patches excepcionais não transformam as linhas antigas em versões com suporte. Para aplicações hospedadas, a correção depende portanto do ambiente PHP fornecido pelo operador, e não apenas de uma atualização do sistema de gestão de conteúdo.