Comparação local com os avisos do PHP2Shell; nenhuma varredura de rede é realizada. Use a versão da SAPI web: o PHP CLI pode carregar outro binário ou arquivo INI.
Não sei minha versão PHP
WordPress → Ferramentas → Saúde do site → Informações → Servidor: copie a versão PHP completa; peça a revisão do pacote ao provedor.
Escolha acesso e implantação antes de gerar configuração.
3. Verificar a resposta
Registre observações após as alterações. Nada é executado automaticamente; os registros ficam somente nesta sessão da página.
Escolha implantação e modelo compatíveis para ver as etapas.
1. Antes da alteração
Registre versões de pacote/imagem e configurações; prepare backup testado e recuperação. Voltar a uma versão vulnerável não conclui a correção.
2. Aplicar e substituir processos
Instale ambos os patches. Confira sintaxe, substituição de todos os processos/réplicas e tráfego saudável. Sondagem TCP não basta.
3. Conferir PHP web
Use apenas diagnóstico web autenticado existente. Compare a versão web com a matriz ou aviso confirmado do provedor; confira cada origem/réplica e remova diagnósticos temporários.
4. Testar a aplicação
Teste login, uploads e progresso. Compare tráfego normal e novos erros dos logs antes e depois.
WordPress: mídia, login e checkout WooCommerce se usado.
Verificação ao vivo de cabeçalhos HTTP públicos e versão PHP
Consulta a resposta anônima de uma página inicial pública. Esta função opcional usa nosso serviço; o avaliador de versões abaixo continua local. Não exige credenciais nem acesso ao servidor.
PHP2Shell (CVE-2026-109618 e CVE-2026-109619) reúne falhas críticas de execução remota de código no ciclo de processamento de requisições do PHP. A limpeza após esgotamento de memória e o estado residual entre requisições podem expor os processos web. multipart/form-data e session.upload_progress participam de alguns caminhos, mas não explicam toda a causa. Nem toda instalação afetada precisa ter um formulário de upload. A possibilidade de exploração depende da SAPI, da aplicação, das extensões e da configuração. Use esta ferramenta de PHP2Shell para avaliar a versão que realmente atende ao tráfego e preparar controles em camadas para php.ini, Nginx, Apache, Docker e Cloudflare WAF. Autenticação e middleware CSRF da aplicação não substituem as atualizações de segurança do ambiente de execução.
PHP2Shell se refere a CVE-2026-109618 e CVE-2026-109619. O projeto PHP classifica as falhas como críticas, com pontuação CVSS 4.0 9.2.
Causa
Corrupção na limpeza após falta de memória e estado global residual entre requisições. session.upload_progress é um dos caminhos relevantes; filtrar apenas PHP_SESSION_UPLOAD_PROGRESS não cobre as duas CVEs.
Versões corrigidas
As correções oficiais estão no PHP 8.2.35+, 8.3.36+, 8.4.27+ e 8.5.12+. PHP 8.1 e anteriores exigem migração ou um backport de segurança comprovado do fornecedor.
Contenção imediata
session.upload_progress.enabled = Off e ajustes de FastCGI reduzem parte da exposição. A correção completa do PHP2Shell exige os dois patches e a substituição de todos os processos antigos do PHP.
Compatibilidade
Uploads normais por $_FILES no WordPress, Laravel, Drupal, Symfony e Magento são independentes do progresso da sessão. Código próprio e plugins que consultam esse progresso podem depender dele; teste os fluxos reais da aplicação.
auditoria CLI do PHP2Shell e análise forense de logs
Use diagnósticos locais de leitura para conferir a configuração e investigar anomalias. Verifique as permissões necessárias e preserve as evidências antes de alterar um sistema potencialmente comprometido.
Os valores da CLI podem diferir da SAPI web. Logs de acesso comuns não incluem o corpo da requisição nem cookies. Este grep pesquisa somente arquivos descompactados. Uma ocorrência pode ser legítima e a ausência de resultados não comprova segurança. Consulte também logs rotacionados e outras fontes de monitoramento.
Verificação CLI da configuração do PHP2Shell
Mostra a versão ativa do PHP CLI e o estado de session.upload_progress.enabled. Compare separadamente a configuração da SAPI web. Um valor desativado não comprova a correção completa do PHP2Shell nem descarta uma invasão anterior.
Procura PHP_SESSION_UPLOAD_PROGRESS e falhas SIGSEGV do PHP-FPM em logs HTTP e de erros descompactados. Confirme a cobertura da coleta e amplie a investigação para logs rotacionados, processos e conexões de saída.
Combine WP-CLI e heurísticas locais de Suricata/YARA com os avisos do fornecedor. Essas verificações não examinam um servidor remoto nem certificam que todos os caminhos de exploração do PHP2Shell foram bloqueados.
PHP2Shell: integridade do WordPress com WP-CLI
Execute como proprietário do site, no diretório raiz do WordPress. Verifica somas publicadas do núcleo e dos plugins quando disponíveis. Código próprio ou comercial precisa de outra revisão de integridade. Essa verificação não determina o patch do PHP.
Heurística local, não assinatura confirmada de exploit. Exige visibilidade de HTTP sem criptografia ou após a terminação TLS e limites suficientes para inspecionar o corpo. Investigue alertas antes de automatizar respostas.
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"LOCAL upload progress marker observed - investigate"; flow:established,to_server; http.request_body; content:"PHP_SESSION_UPLOAD_PROGRESS"; nocase; classtype:misc-activity; sid:9900618; rev:1;)
# Validate with your installed Suricata version before loading:
# suricata -T -c /etc/suricata/suricata.yaml -S local.rules
PHP2Shell: regra YARA para triagem de arquivos
Heurística ampla para selecionar arquivos PHP suspeitos. Código legítimo também pode corresponder; resultados não provam comprometimento. A regra não identifica por si só este exploit de corrupção de memória nem examina tráfego criptografado.
rule Local_Suspicious_PHP_Execution_Review
{
meta:
description = "PHP file triage only; manual review required"
strings:
$php = "<?php" nocase
$decode = /base64_decode\s*\(/ nocase
$exec = /(eval|shell_exec|system|passthru)\s*\(/ nocase
condition:
filesize < 2MB and $php and $decode and $exec
}
// Save as triage.yar; run: yara -r triage.yar /var/www/html
Gerenciar PHP2Shell em vários servidores ou sites WordPress antigos
Alterar php.ini manualmente em dezenas de VPS ou contas cPanel compartilhadas deixa pontos cegos. Reduza a exposição ao PHP2Shell com controles WAF gerenciados e acompanhe as atualizações verificadas do PHP em cada servidor de origem.
Cloudflare Managed WAF
Consulte o fornecedor sobre a cobertura de regras para multipart POST malformado e PHP2Shell. Nenhuma regra de borda genérica substitui os dois patches do PHP. Alinhe a política de acesso à origem com o proxy.
Em PHP 7.4 sem suporte e hospedagem compartilhada sem acesso ao php.ini do sistema, pergunte sobre backports verificados, resposta a incidentes e limites da filtragem gerenciada. Documente a situação de cada conta.
Registre revisões de pacotes e digests de imagens de cada servidor, contêiner e pool. Verifique os novos processos atrás do balanceador antes de retirar os antigos. Confira a saúde real da aplicação e a capacidade restante.
Vulnerabilidade PHP2Shell: análise técnica e defesa
1. Por que verificar PHP2Shell mesmo sem formulário de upload
A vulnerabilidade PHP2Shell não é um problema de um único plugin de CMS ou de uma tela de upload. Ela afeta o próprio PHP, o processamento das requisições e o gerenciamento de estado. Faça um inventário de todos os endpoints PHP expostos, das SAPIs, das extensões, do tratamento de erros e dos arquivos de configuração efetivos. O login e a verificação CSRF podem ocorrer depois que o ambiente já processou partes da requisição. Assim, a ausência de uma função visível de upload ou de um marcador específico não demonstra que a instalação está segura.
multipart/form-data e session.upload_progress ajudam a compreender alguns caminhos do PHP2Shell. No entanto, os avisos oficiais descrevem dois problemas: corrupção na limpeza após falta de memória e estado global que permanece entre requisições. Bloquear um único campo POST não significa corrigir ambos. Confirme se o pacote instalado contém as duas correções completas. Inclua na verificação as revisões da distribuição, os backports do fornecedor e a procedência das imagens de contêiner.
2. Desativar o progresso de upload: efeito e limitações
O PHP pode registrar nos dados da sessão o progresso de um upload em andamento. session.upload_progress.enabled = Off desativa essa função e reduz a superfície de um caminho de sessão relevante. O processamento habitual de $_FILES é independente: a opção não desativa automaticamente todos os uploads. Mesmo assim, barras de progresso próprias, consultas periódicas, plugins e transferências grandes podem depender do recurso. Teste o envio de mídia e os fluxos completos de negócio antes de distribuir a alteração para todos os servidores.
A opção deve valer para a SAPI web, não apenas para o terminal. Pools FPM e contêineres podem carregar INI diferentes; após uma recarga gradual ainda podem existir processos antigos. Separe a verificação da configuração da comprovação do binário corrigido. Para corrigir PHP2Shell, todos os processos precisam executar uma compilação com patch. No PHP 8.5, avalie opções adicionais de inicialização, como fatal_error_backtraces, em conjunto com os avisos oficiais e as necessidades reais da aplicação.
Como corrigir PHP2Shell: patches completos e mitigação temporária
Compare cobertura, impacto operacional e uso em sistemas sem suporte. Selecione uma linha para ver os limites e a configuração correspondente. Desativar o progresso de upload não é uma correção completa do PHP2Shell.
Como corrigir PHP2Shell: patches completos e mitigação temporária
Medida
Cobertura
Impacto operacional
Uso sem suporte
Principal limitação
Correções oficiais completas
Substituir todos os processos
Migração ou patch do fornecedor
Verificar procedência e as duas CVEs
Parte do caminho de sessão
Reiniciar ou substituir processos PHP
Sim
Testar o progresso e continuar com o patch completo
Parte do caminho de sessão
Recarregar Nginx e verificar PHP
Sim
Preferir inicialização e combinar parâmetros existentes
Heurística / depende do fornecedor
Regra de borda geralmente sem reiniciar PHP
Sim
Limites de inspeção, falsos positivos e acesso à origem
A correção completa do PHP2Shell exige PHP suportado e corrigido e a substituição de todos os processos. Se o pacote exibir uma versão oficial antiga, comprove o backport exato do fornecedor.
3. Defesa em profundidade: combinar filtros de borda e patches do PHP
A resposta ao PHP2Shell combina redução de exposição, atualização completa e investigação de incidentes. Faça inventário de todas as origens, processos, contêineres, painéis de hospedagem e serviços em segundo plano. Verifique permissões do WAF, limites de análise e caminhos que contornem o proxy. Observe o tráfego legítimo antes de impor regras mais rígidas para evitar indisponibilidade causada por falsos positivos. Uma implantação gradual e verificável é especialmente importante quando você administra sites de vários clientes.
Para preservar a disponibilidade, são necessárias réplicas saudáveis de reserva, testes de prontidão e retirada ordenada das conexões existentes. Um restart ou reload, sozinho, não garante continuidade. Tenha um plano de reversão operacional sem voltar a um PHP vulnerável. Os patches impedem a reutilização das falhas corrigidas, mas não removem webshells existentes nem credenciais roubadas. Preserve os logs e investigue arquivos, processos filhos e conexões de saída inesperados. A ausência de falhas ou marcadores não comprova que nunca houve invasão.
PHP2Shell: fontes primárias e verificação
Revisado em 22 de outubro de 2026. Ferramenta independente de resposta defensiva ao PHP2Shell. Consulte novamente os avisos oficiais e o pacote exato do fornecedor antes de alterar a produção.
Perguntas frequentes sobre a vulnerabilidade PHP2Shell
Respostas práticas para desenvolvimento e operações sobre como corrigir PHP2Shell, manter a aplicação disponível e verificar os patches.
PHP2Shell designa duas falhas críticas do ambiente PHP com CVSS 4.0 9.2. Os relatórios oficiais descrevem corrupção na limpeza após falta de memória e estado global residual entre requisições. Nas condições afetadas, pode ocorrer execução remota de código. session.upload_progress é um caminho relevante, não toda a causa. Avalie a SAPI, a aplicação e as extensões que atendem ao tráfego usando os dois avisos do PHP.
A correção completa exige um PHP com patch e a substituição de todos os processos antigos. Regras de borda costumam ser implantadas sem reiniciar PHP, mas nenhuma configuração genérica cobre as duas CVEs integralmente. Desativar o progresso de upload da sessão é uma redução temporária do risco. Use substituição gradual com capacidade saudável de reserva suficiente e teste a aplicação. Reiniciar ou recarregar, sozinho, não garante ausência de interrupções.
Não desativa o mecanismo normal $_FILES do WordPress, Laravel, Drupal ou Magento. Porém, código próprio e plugins que consultam o progresso da sessão podem depender dele. Teste uploads de mídia, indicadores de progresso, arquivos grandes e fluxos completos no seu ambiente. A compatibilidade da aplicação e a verificação dos patches completos do PHP2Shell são verificações distintas.
As linhas oficiais corrigidas começam em 8.2.35, 8.3.36, 8.4.27 e 8.5.12. Compilações anteriores nessas linhas precisam de atualização. PHP 8.1 e anteriores estão sem suporte oficial e exigem migração ou backport de segurança verificado. Algumas distribuições mantêm um número antigo com as correções incluídas: compare a revisão exata do pacote com ambas as CVEs. A comparação de versões não detecta comprometimento anterior.
Revise evidências do servidor web, PHP, sistema e ferramentas de proteção para encontrar falhas, arquivos, processos e conexões de saída inesperados. Pesquisar PHP_SESSION_UPLOAD_PROGRESS é apenas uma heurística e pode corresponder a tráfego legítimo. Logs comuns omitem corpos e cookies, portanto grep não detecta todas as tentativas de PHP2Shell. Preserve evidências e consulte também logs rotacionados e monitoramento. Uma pesquisa vazia não comprova que nunca houve comprometimento.
Revise todas as instalações PHP que atendem a requisições web, incluindo PHP-FPM, Apache mod_php, CGI, LiteSpeed e FrankenPHP. A possibilidade e a confiabilidade da exploração variam conforme a SAPI, o comportamento da aplicação, as extensões e a configuração. Não presuma um exploit idêntico confirmado em todas elas nem segurança pela ausência de formulários de upload. Aplique o patch adequado do PHP2Shell em cada instância e verifique todos os processos ativos.