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
- 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.
- Reinicie o Apache, o PHP-FPM e todos os processos PHP de longa duração depois de actualizar.
- Não basta actualizar o WordPress, Drupal ou Joomla: estas actualizações não alteram a versão do PHP.
- 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(nophp.iniou 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 manterupload_max_filesizeabaixo desse valor. display_errors = 0em produção.- Não usar
RLIMIT_ASnemRLIMIT_DATApara 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
PHPSESSIDinvulgarmente 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
- PHP Foundation: anúncio da versão de segurança
- Aviso GHSA-w8hw-w9fx-j79w (CVE-2026-109618)
- Aviso GHSA-6wmf-4rv5-p3rp (CVE-2026-109619)
- Anúncios oficiais em php.net
- PHP2Shell: página dos investigadores
Se suspeita que um sistema foi comprometido, comunique o incidente ao CERT-MZ através de /incidente ou de incident@cert.mz.