
Prova de conceito (PoC) de exploit para php2shell (CVE-2026-109618 / CVE-2026-109619), demonstrando execução remota de código em ambientes PHP vulneráveis. Apenas para fins de pesquisa de segurança e educacionais.
Aviso Crítico (CVSS v4.0: 9.2 - Crítico): Em 20 de outubro, detalhes de duas falhas de Execução Remota de Código (RCE) pré-autenticação no núcleo do PHP vazaram online antes da divulgação coordenada. A exploração permite a execução arbitrária de comandos diretamente a partir do servidor web.
session-upload-progress-counters.patch)php2shell refere-se a duas vulnerabilidades críticas (CVE-2026-109618 e CVE-2026-109619) que afetam funcionalidades centrais do PHP. O principal vetor demonstrado é um use-after-free (UAF) de heap no mecanismo de progresso de upload de sessão do núcleo do PHP, levando à execução arbitrária de código (zend_call_function / system()).
O manipulador de progresso de upload do PHP (php_session_rfc1867_callback em ext/session/session.c) armazena dois ponteiros brutos de bucket zval * (post_bytes_processed e current_file_bytes_processed) diretamente em estruturas HashTable ativas.
Durante o processamento da requisição:
POST multipart padrão ativa o rastreamento de progresso com valores de configuração padrão (session.upload_progress.enabled = 1).zend_hash_update() destrói a árvore de dados anterior usando o destrutor zval_ptr_dtor, liberando o bloco de memória.zend_fcall_info e zend_internal_function manipuladas.zend_call_function(), resultando na execução arbitrária de comandos do sistema.php-src (incluindo as versões 8.4.4 e 8.2.34).--syms) entre zval_ptr_dtor e zend_call_function para se adaptar aos layouts de binários específicos de cada distribuição (por exemplo, Debian Bookworm, Ubuntu Noble, Ubuntu Jammy).A tabela a seguir resume as versões do PHP afetadas pelas CVE-2026-109618 e CVE-2026-109619, juntamente com seus status de suporte e correção:
| Ramo PHP | Status | Versões Afetadas | Versão Corrigida / Segura | Notas |
|---|---|---|---|---|
| PHP 8.5 | Suportado (Ativo) | < 8.5.12 | 8.5.12 | Versão de segurança emergencial publicada |
| PHP 8.4 | Suportado (Ativo) | < 8.4.27 | 8.4.27 | Versão de segurança emergencial publicada |
| PHP 8.3 | Suportado (Ativo) | < 8.3.36 | 8.3.36 | Versão de segurança emergencial publicada |
| PHP 8.2 | Suportado (Somente Segurança) | < 8.2.35 | 8.2.35 | Versão de segurança emergencial publicada |
| PHP 8.1 | Fim de Vida (EOL) | Todas as versões 8.1.x | Sem Patch Oficial (EOL) | Defina session.upload_progress.enabled = Off ou use ELS/backports da distribuição |
| PHP 8.0 | Fim de Vida (EOL) | Todas as versões 8.0.x | Sem Patch Oficial (EOL) | Suporte oficial encerrado; a mitigação por configuração é obrigatória |
| PHP 7.x | Fim de Vida (EOL) | Todas as versões 7.0 - 7.4 | Sem Patch Oficial (EOL) | Lógica central de ext/session vulnerável; mitigação urgente ou atualização necessária |
| PHP 5.x | Fim de Vida (EOL) | 5.4.0+ (com rastreamento de progresso RFC1867) | Sem Patch Oficial (EOL) | Suporte oficial encerrado; isole o host ou desative o progresso de upload |
[!WARNING] Versões PHP 8.1 e anteriores em Fim de Vida (EOL) não recebem patches de segurança oficiais da PHP Foundation. Para esses ambientes, aplique imediatamente
session.upload_progress.enabled = Offou recompile o PHP a partir do código-fonte usando o patch em C fornecido.
A exploração do php2shell normalmente se manifesta como processos filhos anômalos gerados diretamente por processos worker do PHP (php-fpm, php-cgi, php-cgi.exe, httpd, apache2).
Monitore e gere alertas para processos worker do PHP executando:
/bin/sh, /bin/bash, cmd.exe, powershell.exepython, perlcurl, wget, nc, certutil.exe/dev/tcp/, fsockopen, mkfifowhoami, id, uname -a, ipconfigPara ambientes web baseados em Linux sem um agente de detecção de endpoint, ferramentas como o process-watcher gratuito de Florian Roth podem ser executadas em modo de observação para sinalizar a criação incomum de processos filhos em tempo real.