Versões corrigidas disponíveis para PHP 8.2–8.5 Projeto comunitário independente · fatos verificados em 22 de outubro de 2026

Verificador PHP2Shell / cve 2026 109618 mitigação

Mitigação da CVE-2026-109618: medidas temporárias (workarounds) do PHP2Shell e seus limites

Não existe uma mitigação completa para o PHP2Shell. O PHP lista medidas temporárias para a CVE-2026-109618 (remover o limite de memória do PHP, diminuir o post_max_size) e para a CVE-2026-109619 (desligar o session.upload_progress e, no PHP 8.5, o fatal_error_backtraces). Cada uma bloqueia apenas caminhos específicos. Nas palavras do PHP, só a atualização é uma solução completa.

Equipe editorial do PHP2Shell.helpVerificado Fontes oficiais ↓

Existe uma mitigação para a CVE-2026-109618 e a CVE-2026-109619?

Só parciais, e nenhuma delas é uma correção. O boletim do PHP diz que apenas a atualização é uma solução completa e que as medidas abaixo reduzem a exposição a caminhos de ataque específicos, mas não deixam a instalação segura. Para a CVE-2026-109619, o boletim do GitHub acrescenta que não existe uma mitigação genérica e completa por configuração. Use estas configurações só para ganhar tempo até instalar a correção do PHP2Shell.

Quais são as medidas temporárias oficiais?

ConfiguraçãoParaO que bloqueiaEfeitos colaterais
memory_limit=-1 (para que as aplicações não possam sobrescrevê-lo)CVE-2026-109618A falha controlável por limite de memória do PHP. Uma falha de alocação de outra origem ainda pode chegar ao código vulnerável.Os processos do PHP podem usar memória sem limite; acompanhe os recursos do servidor.
post_max_size baixo: 8M se você não precisa de uploads, 32M se precisaCVE-2026-109618Reduz a quantidade de dados da requisição que pode ser empurrada para o PHPUploads e formulários maiores passam a falhar.
session.upload_progress.enabled=0CVE-2026-109619Os caminhos de sessão confirmados, não outras variantesRecursos de progresso de upload podem parar de funcionar.
fatal_error_backtraces=0 (somente PHP 8.5)CVE-2026-109619Apenas o caminho confirmado via backtrace de erro fatalMenos detalhes de diagnóstico nos logs de erro.

Todas essas configurações só valem depois de reiniciar todos os processos (workers) do PHP. O PHP também avisa: não troque por limites RLIMIT_AS ou RLIMIT_DATA, que podem justamente provocar a falha de alocação vulnerável, e esconder erros com error_reporting, display_errors ou @ não ajuda.

Como aplico corretamente a medida do session.upload_progress?

A configuração precisa valer antes de o PHP processar a requisição:

  1. Defina session.upload_progress.enabled=0 no php.ini, na configuração do pool do PHP-FPM ou na configuração do servidor web.
  2. Não use ini_set() no código nem um arquivo .user.ini do FPM; eles entram em ação tarde demais.
  3. Reinicie todos os workers do PHP (todos os pools do PHP-FPM, ou o Apache no caso do mod_php). Workers que não foram reiniciados continuam com as configurações antigas.

Em hospedagem compartilhada, normalmente você não consegue mudar essas configurações; peça ao seu provedor ou instale a correção por meio dele.

“Meu site não tem upload” serve como mitigação?

Não. Os caminhos de ataque estão no tratamento de requisições do próprio PHP, não no formulário de upload do seu site, então um site sem upload não está automaticamente seguro. É por isso que a configuração oficial é uma opção do PHP no nível do servidor, e não uma chave da aplicação.

Um WAF como o da Cloudflare conta como mitigação?

Não. É uma camada extra, não uma correção. A Cloudflare ativou regras de WAF automaticamente em todos os planos com WAF, inclusive o Free, cerca de nove horas antes da divulgação, e relatou que atacantes estavam modificando os payloads para contorná-las. Um WAF só filtra o tráfego que passa por ele, e o PHP do seu servidor continua vulnerável. Mais detalhes em PHP2Shell e Cloudflare e regras de WAF para o PHP2Shell.

Um plugin de modo de manutenção funciona como mitigação?

Não de forma confiável. A própria página de manutenção do WordPress é servida pelo PHP, e alguns caminhos de ataque acontecem antes de o código da aplicação rodar. Para cortar a exposição sem aplicar o patch, bloqueie as requisições antes que cheguem ao PHP ou tire o site do ar, como várias agências nacionais recomendaram para sites que não podem ser atualizados.

Por quanto tempo posso contar com uma mitigação?

Só até conseguir atualizar, de preferência questão de dias. As correções e as análises técnicas são públicas, e a Sansec espera exploração em massa. Planeje a atualização agora. Veja em que pé você está com o verificador PHP2Shell e leia as páginas da CVE-2026-109618 e da CVE-2026-109619 para os detalhes de cada falha.

Quais fontes embasam esta página?

Verifique se o seu PHP é afetado pelo PHP2Shell

Informe a versão que o seu site mostra. Comparamos com a primeira versão corrigida do mesmo ramo e dizemos o que fazer em seguida.

Verificador PHP2Shell →

Fontes

Os fatos centrais desta página (versões corrigidas, detalhes dos CVEs, pacotes das distribuições e alertas de órgãos oficiais) vêm de fontes oficiais. Pesquisas, notícias e posts da comunidade estão identificados como tal.