
Foram divulgadas duas vulnerabilidades críticas no núcleo da linguagem PHP, apelidadas coletivamente de PHP2Shell. Rastreadas como CVE-2026-109618 e CVE-2026-109619, ambas possuem pontuação CVSS v4.0 de 9.2 (Crítica) e permitem a execução remota de código (RCE) sem necessidade de autenticação e antes mesmo do processamento do código da aplicação
Como Funcionam as Vulnerabilidades
- CVE-2026-109618 (Corrupção por Falta de Memória - OOM): Ocorre quando um erro de falta de memória interrompe a inicialização da requisição. O procedimento de limpeza tenta processar dados não inicializados, resultando em condição de Use-After-Free e corrupção de memória.
- CVE-2026-109619 (Estado Global Obsoleto): Referências a dados de uma requisição anterior permanecem gravadas na memória do processo do worker após a liberação do heap. Requisições posteriores tratadas pelo mesmo worker acessam essa memória liberada (Use-After-Free), possibilitando o RCE.
Sistemas Afetados
A falha afeta todas as instalações de PHP que servem requisições web, incluindo ambientes com PHP-FPM, Apache mod_php, php-cgi, FrankenPHP e LiteSpeed. O risco é considerado mais elevado em arquiteturas mod_php, pois a exploração pode ser bem-sucedida antes de qualquer código da aplicação ser compilado.
Versões Corrigidas
O time de segurança do PHP disponibilizou atualizações oficiais para todas as ramificações suportadas:
- PHP 8.2: Atualizar para 8.2.35
- PHP 8.3: Atualizar para 8.3.36
- PHP 8.4: Atualizar para 8.4.27
- PHP 8.5: Atualizar para 8.5.12
(Nota: Versões 8.1 e inferiores já alcançaram o fim de vida (EOL) e exigem pacotes de correção de distribuidores Linux ou a migração para uma versão suportada.
Medidas de Mitigação
- Atualização do Runtime: A atualização para as versões corrigidas é a única solução definitiva
- Ações Temporárias (caso o patch imediato não seja possível):
- Desativar o recurso de progresso de upload de sessão definindo
session.upload_progress.enabled = 0nas configurações do servidor. - No PHP 8.5, desativar os rastreamentos de erros fatais com
fatal_error_backtraces = 0. - Definir
memory_limit = -1administrativamente para remover o limite de memória percorrido pelo exploit. - Bloquear requisições multipart no servidor web ou WAF em aplicações que não realizam upload de arquivos.