PHP alerta para a CVE-2026-115560 e recomenda desativar o progresso de upload de sessões

O projeto PHP publicou um alerta informativo sobre a CVE-2026-115560, um vetor adicional que pode levar à execução remota de código em aplicações com uma combinação específica de configurações de sessão e código. Ainda não há uma correção definitiva publicada para esse caso: o PHP orienta desabilitar temporariamente o recurso de progresso de upload de sessões até o próximo release regular de correção.

O risco não é equivalente às vulnerabilidades PHP2Shell já tratadas em outro artigo. Segundo o próprio PHP, o cenário é incomum e exige que a aplicação altere o manipulador de serialização de sessões em tempo de execução, além de manter habilitado o recurso de progresso de upload. Mesmo assim, servidores expostos devem verificar a configuração agora.

O que é a CVE-2026-115560

A CVE-2026-115560 está relacionada ao mecanismo de session upload progress, usado para acompanhar o progresso de uploads em sessões PHP. O projeto PHP informou que a combinação de determinadas configurações pode abrir um vetor de execução remota de código.

O cenário descrito exige todos os elementos principais abaixo:

  • o parâmetro session.serialize_handler começa configurado como php_binary ou php_serialize;
  • a aplicação altera esse parâmetro em tempo de execução para php usando ini_set() antes de chamar session_start();
  • o progresso de upload de sessão continua habilitado.

Aplicações que nunca alteram o manipulador de serialização em tempo de execução não estão no cenário específico descrito pelo PHP. Ainda assim, a configuração precisa ser auditada, porque bibliotecas, frameworks e código legado podem alterar parâmetros sem que a equipe se lembre dessa dependência.

Não é um patch definitivo

O PHP classificou a comunicação como um advisory informativo e informou que publicará o advisory completo da CVE-2026-115560 com o próximo release. Até a publicação da correção, o projeto recomenda definir session.upload_progress.enabled=0.

Essa orientação reduz o caminho de ataque descrito, mas não deve ser apresentada como substituta de uma atualização futura. Quando o release corrigido estiver disponível, a equipe deverá instalar o pacote e revisar se a mitigação temporária pode ser removida.

Quem deve verificar

O risco merece atenção em servidores que recebem uploads pela internet e usam PHP-FPM, Apache com mod_php, CGI ou outra integração capaz de processar requisições de sessão. O projeto PHP não limita o alerta a uma versão específica na comunicação consultada; por isso, a verificação deve começar pela configuração efetiva do ambiente, e não apenas pelo número da versão.

Aplicações que usam sessões PHP padrão, bibliotecas de upload, portais de documentos, sistemas de atendimento e plataformas de conteúdo devem ser incluídas no levantamento. Em ambientes com múltiplos pools FPM, uma configuração pode estar corrigida em um pool e vulnerável em outro.

Mitigação oficial

Defina o parâmetro abaixo no php.ini, na configuração do pool FPM ou em outra camada que seja aplicada antes do processamento das requisições:

session.upload_progress.enabled=0

Depois de alterar o parâmetro, reinicie todos os workers PHP relacionados ao serviço. Sem o reinício, processos antigos podem continuar usando a configuração anterior.

Não dependa de ini_set() executado pelo próprio código da aplicação para implementar a mitigação. A recomendação deve ser aplicada em uma camada de configuração que entre em vigor antes do processamento de sessões. Em seguida, confirme o valor efetivo em cada pool e documente a mudança.

Impacto funcional

Desabilitar o progresso de upload pode remover indicadores de andamento usados por algumas aplicações. Isso pode alterar a experiência de upload, mas é uma consequência aceitável enquanto o PHP não disponibiliza a correção completa.

Teste a alteração em homologação e verifique fluxos que exibem uma barra de progresso ou consultam dados de progresso de sessão. O objetivo é manter o recebimento de arquivos funcionando sem manter habilitado o recurso que compõe o cenário de risco.

Como auditar o ambiente

Comece identificando os valores efetivos de session.upload_progress.enabled e session.serialize_handler nos processos que recebem requisições externas. Não confie apenas no arquivo global: configurações de pool, diretivas de diretório e parâmetros de inicialização podem alterar o resultado.

Depois, procure no código por chamadas a ini_set() que alterem o manipulador de serialização antes de session_start(). Faça a busca também em dependências e código compartilhado. Se houver mudança dinâmica e upload de sessão habilitado, aplique a mitigação imediatamente.

Registre versão do PHP, modo de execução, pool, arquivo de configuração usado, valor efetivo das diretivas e data do reinício. Essa evidência facilita comprovar a correção temporária e repetir a auditoria quando o release definitivo for publicado.

Recomendações adicionais

Mantenha limites de tamanho de upload e de tempo de requisição no proxy, servidor web e PHP. Esses controles não corrigem a CVE, mas reduzem a exposição a requisições de upload excessivas e ajudam a limitar abuso de recursos.

Atualize o PHP por pacotes oficiais da distribuição ou pelos releases publicados pelo projeto. Não aplique patches copiados de fóruns nem altere diretivas sem validar o efeito nos pools de produção.

Monitore erros de sessão, falhas de upload, reinícios inesperados de workers e alterações de configuração. Esses eventos não confirmam exploração, mas podem indicar que uma aplicação está acionando um caminho inesperado.

Conclusão

A CVE-2026-115560 é um vetor adicional de risco no PHP ligado ao progresso de upload de sessões. O projeto PHP confirma que o cenário depende de uma combinação incomum de configurações e código, mas recomenda desabilitar session.upload_progress.enabled até a próxima correção regular.

Audite os pools expostos, aplique a mitigação em uma configuração anterior ao processamento das requisições, reinicie os workers e acompanhe o próximo release do PHP. Não trate a ausência de exploração conhecida ou a raridade da configuração como motivo para deixar o recurso habilitado sem verificação.

Fontes primárias

PHP News Archive 2026: Informational advisory: Session upload progress.

PHP Security Advisory: GHSA-6wmf-4rv5-p3rp, referência relacionada à mitigação publicada para CVE-2026-109619.

CVE.org: CVE-2026-115560.