← Voltar aos artigos
23/10/2026Alerta Crítico

PHP2Shell: vulnerabilidades críticas no PHP permitem execução remota de código

PHP2Shell: vulnerabilidades críticas no PHP permitem execução remota de código

O CERT-MZ alerta para duas vulnerabilidades críticas no núcleo do PHP, divulgadas a 21 de Outubro de 2026 sob o nome PHP2Shell. Permitem que um atacante sem autenticação execute código no servidor ou leia memória de outros pedidos. O PHP é usado pela maioria dos sites e portais, incluindo WordPress, Drupal e Joomla, pelo que recomendamos a actualização imediata de todos os servidores com PHP.

Resumo

CVE Descrição Gravidade
CVE-2026-109618 Execução remota de código por corrupção de memória ao esgotar o limite de memória (OOM) CVSS v4.0 9.2 (Crítica)
CVE-2026-109619 Execução remota de código por estado global que persiste entre pedidos (use-after-free) CVSS v4.0 9.2 (Crítica)

A falha está no próprio PHP e não numa aplicação: até uma aplicação simples a correr numa versão vulnerável pode ser afectada.

Versões afectadas

Ramo Vulnerável Corrigido em
PHP 8.5 anterior a 8.5.12 8.5.12
PHP 8.4 anterior a 8.4.27 8.4.27
PHP 8.3 anterior a 8.3.36 8.3.36
PHP 8.2 anterior a 8.2.35 8.2.35

Segundo os investigadores, versões desde o PHP 5.4 são afectadas por pelo menos uma das falhas. O PHP 8.1 e anteriores já não recebem actualizações do projecto PHP. Foram publicadas correcções mínimas em código-fonte para as versões 7.4, 8.0 e 8.1, e algumas distribuições Linux poderão disponibilizá-las nos seus pacotes.

Impacto

  • Execução de código no servidor com os privilégios do processo PHP, permitindo controlar o site, aceder a dados, defacing ou movimento lateral na rede.
  • Divulgação de memória com dados de outros pedidos, como palavras-passe, tokens de sessão, chaves de API e certificados.

A execução remota de código foi demonstrada pelos investigadores em Apache com mod_php e em PHP-FPM. À data da divulgação, a PHP Foundation não tinha identificado exploits funcionais em uso, mas código de demonstração começou a circular após uma fuga de informação. Recomendamos tratar esta actualização como urgente.

O que fazer

  1. Actualize o PHP para 8.5.12, 8.4.27, 8.3.36 ou 8.2.35, ou para a versão corrigida fornecida pela sua distribuição ou fornecedor de alojamento. Segundo o projecto PHP, esta é a única correcção completa.
  2. Reinicie o Apache, o PHP-FPM e todos os processos PHP de longa duração depois de actualizar.
  3. Não basta actualizar o WordPress, Drupal ou Joomla: estas actualizações não alteram a versão do PHP.
  4. Se usa PHP 8.1 ou anterior, planeie a migração para uma versão suportada.

Medidas temporárias, se não puder actualizar de imediato

Estas medidas reduzem o risco, mas não cobrem todas as variantes:

  • session.upload_progress.enabled = 0 (no php.ini ou na configuração do pool FPM, não em .user.ini), seguido de reinício dos processos.
  • No PHP 8.5: fatal_error_backtraces = 0.
  • Reduzir post_max_size (por exemplo, 8M se não aceita uploads) e manter upload_max_filesize abaixo desse valor.
  • display_errors = 0 em produção.
  • Não usar RLIMIT_AS nem RLIMIT_DATA para limitar a memória do PHP, porque podem desencadear as mesmas falhas.

A 23 de Outubro o projecto PHP publicou um aviso adicional (CVE-2026-115560) que recomenda manter session.upload_progress.enabled = 0 até à próxima versão de correcção.

Sinais a vigiar

Os seguintes sinais justificam investigação, mas por si só não confirmam um ataque:

  • Cookies PHPSESSID invulgarmente grandes ou mal formados nas respostas.
  • Pedidos multipart invulgares seguidos de erros de limite de memória ou de respostas HTTP 500 repetidas.
  • Falhas ou reinícios inexplicados dos processos PHP.

Referências


Se suspeita que um sistema foi comprometido, comunique o incidente ao CERT-MZ através de /incidente ou de incident@cert.mz.