Alerta crítico de segurança: PHP2Shell · CVSS 4.0 9.2Fontes revisadas: 22 de outubro de 2026

Verificador PHP2Shell

Compare o PHP web, escolha a implantação e verifique cada alteração. Grátis, sem credenciais do servidor.

1. Sua versão PHP

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.

WordPress · Docs

Use diagnóstico autenticado; nunca deixe phpinfo público. Informe acima a versão completa.

Testes da aplicação (opcional): WordPress / WooCommerce · PHP 8.3.x

Versões oficiais corrigidas: 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12

Exemplo do ramo; informe a versão exata para avaliar os patches.

Escolher implantação

2. Escolher resposta aplicável

Seu acesso / Implantação web

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. 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. 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. 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. 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.

Somente página inicial, HTTP/HTTPS e portas padrão. Sem caminhos, consultas, IPs ou credenciais. Redirecionamentos não são seguidos. O limite total é de cinco segundos.

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: fatos essenciais para a resposta

Vulnerabilidades
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.

php -r 'echo "PHP Version: ".PHP_VERSION."
Upload Progress: ".(ini_get("session.upload_progress.enabled") ? "ENABLED (review web SAPI)" : "DISABLED (not a safety verdict)")."
";'

Pesquisar indícios de PHP2Shell nos logs

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.

sudo grep -rnE "PHP_SESSION_UPLOAD_PROGRESS|SIGSEGV.*php-fpm" /var/log/nginx/ /var/log/apache2/ /var/log/php* 2>/dev/null

PHP2Shell: auditoria de WordPress e regras IDS

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.

wp core version
wp core verify-checksums
wp plugin verify-checksums --all --strict
wp eval 'echo PHP_VERSION, PHP_EOL, PHP_SAPI, PHP_EOL;'
PHP2Shell: regra HTTP local do Suricata

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.

Ver configuração WAF do PHP2Shell

Sucuri Website Security e WAF

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.

Ver orientações para Apache

Atualizações verificadas e substituição gradual

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.

Ver exemplos Docker e Kubernetes

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
MedidaCoberturaImpacto operacionalUso sem suportePrincipal limitação
Correções oficiais completasSubstituir todos os processosMigração ou patch do fornecedorVerificar procedência e as duas CVEs
Parte do caminho de sessãoReiniciar ou substituir processos PHPSimTestar o progresso e continuar com o patch completo
Parte do caminho de sessãoRecarregar Nginx e verificar PHPSimPreferir inicialização e combinar parâmetros existentes
Heurística / depende do fornecedorRegra de borda geralmente sem reiniciar PHPSimLimites 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.

Consultar o aviso oficial da correção

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.