Nesta análise aprofundada, examinaremos as vulnerabilidades PHP2Shell (CVE-2026-109618, CVE-2026-109619 e CVE-2026-115560), que foram descobertas e mapeadas com a ajuda de IA avançada. Essas falhas revelaram-se uma ameaça séria, com CVSS 9.2 e RCE sem autenticação, e foram adormecidas no código C do núcleo do PHP há mais de uma década.

Vulnerabilidade CVE-2026-109618: Corrupção de Memória em Out-of-Memory
A vulnerabilidade CVE-2026-109618 é uma corrupção de memória em Out-of-Memory. O PHP interrompe uma requisição quando os limites de memória são estourados. O problema é que, se o estouro ocorrer enquanto estruturas internas ainda estão sendo alocadas (inicialização parcial), a rotina de limpeza (cleanup) trata lixo de memória como se fossem dados estruturados válidos. Isso permite escalada de privilégios até execução remota de código sem autenticação.
Vulnerabilidade CVE-2026-109619: Use-After-Free no OPcache e Backtraces
A vulnerabilidade CVE-2026-109619 envolve um uso após a liberação (Use-After-Free) no OPcache e Backtraces. Determinados estados internos sobreviviam no processo trabalhador (worker) mesmo após a memória ser liberada. Uma nova requisição atendida pelo mesmo worker herdava referências a regiões de memória recicladas. Como o OPcache compartilha estruturas em memória para acelerar scripts compilados, o isolamento entre requisições era quebrado.
Vulnerabilidade CVE-2026-115560: Falha de Progresso de Upload de Sessão
A terceira vulnerabilidade, CVE-2026-115560, envolve uma falha de progresso de upload de sessão. O projeto PHP lançou correções no dia 21 de outubro (8.5.12, 8.4.27, 8.3.36 e 8.2.35). Porém, dois dias depois (23 de outubro), foi emitido um alerta adicional para a CVE-2026-115560, outra RCE ligada ao progresso de upload de sessão (upload_progress), que não foi resolvida pelos patches do dia 21. A recomendação dos mantenedores e do CERT-EU é desabilitar essa flag no php.ini enquanto o patch definitivo não sai: ; /etc/php/8.x/fpm/php.ini ou /etc/php.ini. session.upload_progress.enabled = 0.
Versões Mínimas Corrigidas
A tabela de versões mínimas corrigidas é a seguinte:
| Série do PHP | Versão Mínima Segura |
|-------------|-----------------------|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
| PHP 8.1 ou Anterior | 8.1 ou Anterior |
Cuidado com o php -v
O comando php -v pode mostrar uma versão antiga mesmo se o patch de segurança já tiver sido aplicado via backport. Lembre-se de verificar o pacote real usando o gerenciador de pacotes.
Conclusão
As vulnerabilidades PHP2Shell revelaram-se uma ameaça séria, com CVSS 9.2 e RCE sem autenticação. A IA avançada foi crucial para mapear essas falhas adormecidas há mais de uma década. A velocidade da IA de análise de código (IAA) significou que o tempo de janela entre a descoberta de uma falha e o surgimento de PoCs na internet caiu para quase zero. É crucial atualizar rapidamente e verificar as versões corretas para mitigar essas vulnerabilidades.
Recomendações
- Desabilite a flag session.upload_progress.enabled = 0 no php.ini enquanto o patch definitivo não sai.
- Verifique sempre o pacote real usando o gerenciador de pacotes.
- Reinicie os processos persistentes para garantir que o binário antigo não continue rodando na memória RAM.
- Mantenha o sistema atualizado e verifique sempre as versões corretas para mitigar essas vulnerabilidades.
Referências:
- [Sentinel: PHP2Shell - Análise Completa](https://sentinel.dev/php2shell-analysis)
- [Wiz Atlas](https://wiz.atlas/)
- [Gemini Argon](https://gemini.argon.rs/)
- [GPT-5.6 Sol](https://gpt-5.6.sol/)
- [PHP2Shell: Análise Profunda](https://www.sentinel.dev/php2shell-analysis)
- [PHP -v](https://php.net/manual/en/function.php-v.php)
- [Backports](https://backports.debian.org/)
- [Debian](https://www.debian.org/)
- [Ubuntu](https://ubuntu.com/)
- [RHEL](https://www.redhat.com/)
- [CentOS](https://www.centos.org/)
- [AlmaLinux](https://www.almalinux.org/)