Situação atual: PHP2Shell. Duas vulnerabilidades críticas do PHP (CVSS 9,2) permitem executar código malicioso sem autenticação. Patches disponíveis desde 21/10/2026.O que fazer agora →

CVE-2026-115560: aviso sobre o session upload progress

A CVE-2026-115560 é um aviso do php.net de 23/10/2026: possível execução de código apenas numa configuração de sessão invulgar. Solução até à próxima versão: session.upload_progress.enabled=0.

Atualizado em 5 min de leituraPHP2Shell

Em resumo: a CVE-2026-115560 é um aviso que o php.net publicou a 23 de outubro de 2026. A execução remota de código só é possível, segundo ele, numa configuração de sessão invulgar. Até à próxima versão regular de correção de erros, a solução é: definir session.upload_progress.enabled=0 no servidor e reiniciar todos os workers.

O que é a CVE-2026-115560?

Dois dias depois dos patches para as vulnerabilidades PHP2Shell CVE-2026-109618 e CVE-2026-109619, o projeto PHP publicou mais um aviso. A CVE-2026-115560 diz respeito ao tratamento de sessões do PHP em ligação com a função session upload progress, que guarda na sessão o progresso dos uploads de ficheiros em curso.

Segundo o php.net, é possível a execução remota de código malicioso, mas apenas numa configuração invulgar. O aviso completo (advisory), com todos os pormenores, deverá seguir-se com a próxima versão regular de correção de erros. Até lá, o conhecimento disponível é deliberadamente escasso.

O que faz o session upload progress?

O session upload progress é uma função de conveniência do PHP. Quando um visitante envia um ficheiro maior, o PHP escreve na sessão, durante o upload, indicações contínuas sobre o progresso: quantos dados já chegaram e que ficheiro está a ser transferido. Uma aplicação pode consultar essas indicações em paralelo e construir com elas uma barra de progresso.

Na prática, poucas aplicações a usam, porque os formulários de upload modernos medem o progresso normalmente diretamente no navegador. No PHP, porém, a função está ativada por predefinição. Por isso aparece tanto na CVE-2026-115560 como nas medidas provisórias contra o PHP2Shell: o que não é necessário deve estar desligado.

Quando é que um servidor está afetado pela CVE-2026-115560?

Segundo o aviso do php.net, têm de se verificar em conjunto três condições:

  1. Na configuração, o session.serialize_handler tem o valor php_binary ou php_serialize.
  2. A aplicação altera este valor em tempo de execução, com ini_set(), para php, antes de chamar session_start().
  3. O session upload progress está ativo.

O valor predefinido do session.serialize_handler é php. Uma alteração na configuração e uma reposição no código é invulgar, mas ocorre em desenvolvimentos próprios antigos ou em bibliotecas com tratamento próprio de sessões. Se isso se aplica no seu caso, pode ser verificado.

Como verificar a sua configuração

Primeiro, os valores efetivos. A CLI pode ler um php.ini diferente do PHP-FPM ou do mod_php; verifique por isso também a configuração do servidor web ou do pool FPM.

php -i | grep -E "session.serialize_handler|session.upload_progress.enabled"
grep -rn "serialize_handler\|upload_progress" /etc/php/ 2>/dev/null   # o caminho varia conforme a distribuição

Depois, o código da aplicação. A pesquisa seguinte é apenas de leitura e mostra os locais onde o handler é definido em tempo de execução:

grep -rn "session.serialize_handler" /var/www/ --include="*.php"

Se a pesquisa não encontrar nada e o handler estiver em php na configuração, a combinação descrita é improvável. Mesmo assim, deve desativar o session upload progress, pois o php.net indica a mesma definição também como medida provisória contra o PHP2Shell.

Solução: session.upload_progress.enabled=0

Defina o valor no php.ini, no pool FPM ou na configuração do servidor. Segundo o php.net, expressamente não através de ini_set() ou .user.ini, pois aí atua tarde demais ou pode ser sobreposto pela aplicação.

; php.ini (para todos os pools e SAPIs que leem este ficheiro)
session.upload_progress.enabled = 0

; ou no pool FPM
php_admin_flag[session.upload_progress.enabled] = off
# Apache com mod_php, no VirtualHost ou na configuração do servidor
php_admin_flag session.upload_progress.enabled off

Depois, reinicie todos os workers do PHP, por exemplo systemctl restart php8.3-fpm ou o Apache, no caso do mod_php. Os nomes de pacotes e de serviços variam conforme a distribuição. Sem reinício, a definição antiga continua a vigorar. Mais informação em Reiniciar o PHP-FPM e todos os workers.

Dica

Depois do reinício, verifique se a definição realmente produz efeito: no contexto web, e não apenas na linha de comandos. Uma página phpinfo criada por pouco tempo e protegida contra acesso mostra o valor efetivo; apague-a logo a seguir.

Enquadramento em relação ao PHP2Shell

A CVE-2026-115560 é claramente mais restrita do que as duas vulnerabilidades do PHP2Shell, que atuam nos modos de operação habituais sem configuração especial. Quem tem de priorizar agora deve primeiro instalar a atualização do PHP2Shell e depois definir session.upload_progress.enabled=0. As duas coisas são exequíveis numa só janela de manutenção.

Para a administração e para quem não é técnico: a CVE-2026-115560 não é motivo de inquietação, mas é um ponto da lista. A definição é rapidamente aplicada, quase não tem efeitos percetíveis em nenhuma aplicação e cobre, ao mesmo tempo, uma das medidas provisórias contra o PHP2Shell. As restantes medidas provisórias do php.net constam de Medidas imediatas quando ainda não pode aplicar o patch, as indicações gerais sobre a configuração de sessões em Proteger as sessões em PHP.

O que ainda não sabemos: que versões do PHP estão exatamente afetadas e que versão traz a correção. Atualizamos esta página assim que o aviso (advisory) for publicado.

Como ajuda concretamente a PHP SOS?

No âmbito do hardening de servidor, aplicamos a solução de forma duradoura e verificável:

  • Ler a configuração: valores de sessão efetivos por SAPI, pool e host virtual.
  • Pesquisar o código: locais onde o handler ou as opções de sessão são alterados em tempo de execução.
  • Desativar no sítio certo: no php.ini, no pool ou na configuração do servidor, sem poder ser sobreposto pela aplicação, com reinício a seguir.
  • Acompanhar: quando a versão de correção de erros sair, instalamo-la e documentamos o estado.

Perguntas frequentes

A CVE-2026-115560 faz parte do PHP2Shell?

O aviso surgiu dois dias depois dos patches do PHP2Shell e diz também respeito ao próprio PHP. Mas é uma vulnerabilidade distinta, com número CVE próprio, e só atua numa configuração específica e invulgar. As atualizações do PHP2Shell de 21 de outubro não a corrigem, segundo o estado atual.

Já existe uma atualização contra a CVE-2026-115560?

Segundo o estado de 25/10/2026, não. O php.net anuncia que o aviso completo (advisory) se seguirá com a próxima versão regular de correção de erros. Até lá, session.upload_progress.enabled=0 é a solução recomendada.

O que deixa de funcionar se eu desativar o session upload progress?

A função comunica à aplicação o progresso dos uploads de ficheiros em curso. Só as aplicações que implementam uma barra de progresso deste tipo através desta função do PHP perdem a indicação. O upload em si continua a funcionar.

Fontes

Contacto imediato

Cada hora conta. Escreva-nos agora.

Descreva brevemente o sistema, a versão do PHP e o que observou. Entramos em contacto consigo, esclarecemos a situação e trabalhamos remotamente até o incidente estar concluído e documentado.

Ajuda imediata