PHP2Shell: como corrigir a falha crítica do PHP no seu VPS ou hospedagem WordPress
A PHP2Shell é o apelido de duas vulnerabilidades críticas no próprio PHP, a CVE-2026-109618 e a CVE-2026-109619. Elas permitem execução remota de código (RCE) sem autenticação e afetam praticamente todas as versões desde o PHP 5.4. Segundo o aviso oficial, a única correção completa é atualizar para o PHP 8.5.12, 8.4.27, 8.3.36 ou 8.2.35.
TL;DR: Rode
php -vno seu VPS ou confira a versão no painel DirectAdmin da sua conta. Se estiver abaixo das versões corrigidas, atualize, reinicie o PHP e revise os logs a partir de 21 de outubro de 2026.
Por equipe Rollin Host
O que é a PHP2Shell e por que ela é tão grave?
O anúncio saiu em 21 de outubro de 2026, conforme reportou a CyberSec Brazil. As duas falhas receberam 9,2 no CVSS v4.0.
Três fatores explicam a gravidade:
- RCE sem login: um atacante pode executar código no servidor sem credencial nenhuma.
- Leitura de memória: os pesquisadores também demonstraram leitura da memória dos processos PHP. Ali podem estar senhas de banco e chaves de API.
- Camada de baixo: o defeito está no mecanismo de execução do PHP, e não em um plugin ou framework.
Por isso, manter o WordPress ou o Laravel atualizado não resolve o problema. O código vulnerável roda antes da sua aplicação.
Plugin atualizado não protege de falha no interpretador. A correção da PHP2Shell acontece no binário do PHP.
A PHP2Shell já está sendo explorada?
Já existem tentativas de exploração. A Cloudflare detectou tráfego de tentativas antes mesmo da publicação dos patches, e a watchTowr confirmou ataques ativos.
Até a última atualização da matéria da CyberSec Brazil, não havia confirmação pública de servidor comprometido. As falhas também não constavam no catálogo KEV da CISA.
Resumo: ainda não há invasão confirmada, mas os ataques já estão acontecendo.
Quem está exposto à PHP2Shell?
Está exposto qualquer servidor que execute PHP por um destes componentes citados no aviso:
| Componente | Situação demonstrada |
|---|---|
| Apache mod_php | Execução de código com uma única requisição não autenticada, antes de a aplicação iniciar |
| PHP-FPM (Nginx/Apache) | Uma falha é potencialmente explorável. A outra teve execução comprovada, dependendo de uma operação feita pela aplicação |
| php-cgi | Afetado |
| FrankenPHP | Afetado |
O mod_php é o cenário mais crítico, porque o ataque dispensa qualquer interação da aplicação.
WordPress, Laravel, Magento e qualquer outro app PHP rodam sobre essas camadas e herdam o risco. Se o seu VPS também roda automações, como numa VPS para n8n, revise o PHP que estiver instalado no mesmo sistema.
O próximo passo é descobrir qual versão está rodando.
Como descobrir a versão do PHP no meu servidor?
No VPS (acesso root)
# Versão do PHP de linha de comando
php -v
# Versão do PHP-FPM (o nome do serviço varia por distribuição)
php-fpm -v 2>/dev/null || php-fpm8.3 -v
# Listar os pools FPM ativos
systemctl list-units --type=service | grep -i fpm
Confira o PHP-FPM, e não só o php -v. É comum o CLI estar em uma versão e o FPM que atende o site estar em outra.
Na hospedagem compartilhada ou WordPress
A versão do PHP aparece no painel DirectAdmin da conta. Se não encontrar a opção, o suporte confirma a versão ativa de cada domínio.
Para conferir pelo próprio site, use um phpinfo() temporário e apague o arquivo logo depois. Esse arquivo expõe dados do servidor.
Como corrigir a PHP2Shell?
Versões ainda suportadas (8.2 a 8.5)
Atualize para a versão corrigida do seu branch:
| Branch | Versão corrigida |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
Exemplo em Debian/Ubuntu com repositório de pacotes PHP:
apt update
apt install --only-upgrade 'php8.3*'
systemctl restart php8.3-fpm
systemctl restart nginx # ou apache2
Em RHEL, AlmaLinux ou Rocky, o equivalente é dnf upgrade 'php*', seguido do restart dos serviços.
Versões sem suporte (7.4, 8.0 e 8.1)
Para essas versões, o projeto publicou apenas correções de código-fonte nos branches. Isso exige compilar o PHP, manter o build e repetir o processo a cada nova falha.
O caminho prático é migrar para o 8.2 ou superior. Teste antes em staging, porque plugins antigos podem quebrar com a mudança de versão.
Precisa de ajuda com a migração? Fale com a gente no WhatsApp.
Existem mitigações temporárias para a PHP2Shell?
Existem, mas elas só reduzem alguns caminhos de ataque. O aviso oficial é claro: "a atualização é a única medida capaz de corrigir completamente as vulnerabilidades".
; CVE-2026-109619: desativar o progresso de upload de sessão
session.upload_progress.enabled = 0
; CVE-2026-109618
memory_limit = -1
post_max_size = 8M ; reduza ao mínimo que a aplicação aceita
Depois de alterar, reinicie os processos PHP. Sem o restart, a configuração nova não entra em vigor.
Essas medidas têm custos:
- memory_limit = -1 remove o teto de memória. Um script com bug pode consumir toda a RAM do VPS.
- post_max_size baixo pode quebrar uploads de mídia, importações e formulários.
- Desativar o upload_progress afeta barras de progresso que dependem dele.
Mitigação serve para ganhar algumas horas. A correção de verdade é a atualização.
O que fazer depois de atualizar o PHP?
- Reinicie o PHP-FPM e o servidor web. Processos antigos continuam rodando o binário vulnerável até o restart.
- Confira a versão de novo com
php -v,php-fpm -ve umphpinfo()temporário servido pelo próprio site. - Revise os logs de acesso a partir de 21/10/2026:
Procure requisições estranhas, picos de erro 500 e arquivos PHP criados ou alterados sem deploy seu.grep "21/Oct/2026" /var/log/nginx/access.log | awk '$9 >= 500' | less find /var/www -name "*.php" -newermt "2026-10-21" -ls - Troque as senhas se houver sinal de acesso indevido: banco de dados, painel, SSH, chaves de API e as constantes do
wp-config.php. Como a falha permite leitura de memória, considere expostos os segredos carregados pelo PHP. - Restaure um ponto de backup anterior se houver comprometimento.
Como funciona a restauração na Rollin Host?
Nossa Política de Backup define o processo para cada tipo de serviço.
Hospedagem compartilhada, revenda e WordPress:
- Backup diário de arquivos, bancos MySQL/MariaDB, e-mail e configurações de domínio, feito entre 00h e 06h (Brasília).
- 14 pontos diários em rodízio, guardados em infraestrutura externa e criptografados. O RPO é de até 24 h.
- A restauração é pedida por ticket em painel.rollinhost.com.br.
- Prazo de referência: até 4 horas úteis para um arquivo ou banco, e até 8 horas úteis para a conta DirectAdmin completa.
- Cada conta tem 1 restauração assistida gratuita por mês.
VPS, cloud e dedicados:
- Não têm backup automático, salvo com o add-on "Backup Automático".
- Os snapshots ficam na mesma infraestrutura do servidor e expiram em 30 dias. Eles não substituem backup.
Restaure um ponto anterior à intrusão e atualize o PHP antes de colocar o site de volta no ar. Se você restaurar sem atualizar, o servidor volta vulnerável.
Quando vale chamar ajuda?
Chame ajuda nos seguintes casos:
- O servidor roda PHP 7.4, 8.0 ou 8.1 e a aplicação não foi testada no 8.2.
- Os logs mostram arquivos alterados ou processos desconhecidos.
- Não há backup recente fora do servidor.
Se a aplicação legada já custa mais para manter do que para reescrever, vale avaliar um site estático. A Agência Rollin, nossa marca irmã, trabalha com desenvolvimento em Astro, que elimina o PHP do front.
Principais aprendizados
- A PHP2Shell (CVE-2026-109618 e CVE-2026-109619) é um RCE sem autenticação com CVSS 9,2 e afeta o PHP desde a versão 5.4.
- A correção é atualizar para 8.5.12, 8.4.27, 8.3.36 ou 8.2.35. Para 7.4, 8.0 e 8.1, o caminho prático é migrar de versão.
- O mod_php é o cenário mais crítico: uma requisição basta para executar código.
- As mitigações de
php.inisó reduzem a superfície de ataque e não substituem a atualização. - Depois de atualizar, reinicie os serviços, confira a versão, revise os logs desde 21/10/2026 e troque os segredos se houver sinal de acesso indevido.
Perguntas frequentes
Atualizar o WordPress protege contra a PHP2Shell?
Não. A falha está no interpretador PHP, e não no WordPress. O que corrige é atualizar o PHP do servidor para uma versão corrigida.
Meu site usa PHP-FPM com Nginx. Estou seguro?
Não totalmente. No PHP-FPM, uma das falhas teve execução de código comprovada, dependendo de uma operação feita pela aplicação. Atualize mesmo assim.
Posso continuar no PHP 7.4 aplicando o patch de código-fonte?
Pode, mas isso exige compilar e manter o PHP manualmente. Para a maioria dos sites, migrar para o 8.2 ou superior é mais seguro e mais barato a médio prazo.
Snapshot de VPS serve como backup contra invasão?
Não. Pela política da Rollin Host, o snapshot fica na mesma infraestrutura do servidor e expira em 30 dias. Mantenha backup externo ou contrate o add-on de Backup Automático.
Quanto tempo leva uma restauração na hospedagem Rollin Host?
O prazo de referência é de até 4 horas úteis para um arquivo ou banco específico, e de até 8 horas úteis para a conta DirectAdmin completa. O pedido é feito por ticket no painel.
Precisa de ajuda para atualizar ou conferir o servidor? Nosso suporte atende 24/7 em português. Fale com a gente no WhatsApp.