Guia · atualizado em 22/10/2026
PHP2Shell: o que é a falha do PHP e como proteger seu site
A PHP2Shell é um conjunto de falhas de segurança no próprio PHP, divulgado em 21 de outubro de 2026, que permite a um atacante executar comandos no servidor sem login. Ela atinge praticamente todas as versões do PHP e não depende do código do seu site: a correção é atualizar o PHP para uma versão corrigida.
Resumo rápido: se o seu site roda PHP 8.2 a 8.5, atualize para 8.2.35, 8.3.36, 8.4.27 ou 8.5.12. Se roda PHP 8.1 ou mais antigo, não há atualização oficial: o caminho seguro é migrar para uma versão suportada.
O que é a PHP2Shell
São falhas de memória no núcleo do PHP, reunidas em dois identificadores públicos: CVE-2026-109618 e CVE-2026-109619. Foram encontradas pela equipe de pesquisa da Wiz, comunicadas ao time de segurança do PHP em 24 de agosto de 2026 e corrigidas em 21 de outubro de 2026.
Com elas, um atacante consegue:
- Executar comandos no servidor sem usuário nem senha. Os pesquisadores demonstraram o ataque em instalações atuais de WordPress, Drupal e Joomla.
- Ler a memória do PHP e, com isso, obter senhas, tokens de sessão, chaves de API e certificados de outras requisições, mesmo sem tomar o servidor.
Uma tentativa de exploração foi registrada pela Amazon em 17 de outubro de 2026, antes mesmo da divulgação pública.
Quem é afetado
Segundo o próprio projeto PHP, toda instalação de PHP que atende requisições web está em risco. Isso inclui os modos mais comuns de hospedagem: PHP-FPM, Apache com mod_php, php-cgi, FrankenPHP e LiteSpeed. O risco é maior no mod_php, em que uma requisição sem autenticação pode disparar o ataque antes de o código do site rodar.
Não importa se o site é WordPress, Laravel, um sistema próprio ou uma loja virtual: o que define se ele está exposto é a versão do PHP instalada no servidor.
Versões corrigidas
| Sua linha do PHP | Versão corrigida | O que fazer |
|---|---|---|
| 8.5 | 8.5.12 | Atualizar dentro da mesma linha |
| 8.4 | 8.4.27 | Atualizar dentro da mesma linha |
| 8.3 | 8.3.36 | Atualizar dentro da mesma linha |
| 8.2 | 8.2.35 | Atualizar e planejar a migração: o suporte de segurança do 8.2 termina em 31/12/2026 |
| 8.1, 8.0, 7.4 | Sem versão oficial | Migrar. Há apenas um remendo em código-fonte, sem suporte |
| 7.3 ou anterior, 5.x | Nenhuma | Migrar com urgência |
Algumas distribuições Linux e fornecedores de suporte estendido publicam pacotes com a correção para versões antigas. Se o seu servidor usa um desses pacotes, confira com o fornecedor se a correção da PHP2Shell já está incluída.
Como descobrir a versão do PHP do seu site
- Painel da hospedagem: em hospedagens compartilhadas (cPanel, Plesk, hPanel), procure por “Versão do PHP”, “Seletor de PHP” ou “Configurações de PHP”.
- WordPress: no painel, vá em Ferramentas → Saúde do site → Informações → Servidor. A versão do PHP aparece na lista.
- Acesso ao servidor (SSH): o comando
php -vmostra a versão de linha de comando, que pode ser diferente da usada pelo site. Para ter certeza, confira a versão do PHP-FPM ou do módulo do Apache. - Arquivo de teste: um arquivo com
<?php phpinfo();mostra a versão exata. Apague-o logo depois, porque ele expõe detalhes do servidor.
Note que a versão precisa ser a corrigida da tabela acima, e não apenas a linha certa: um PHP 8.3.20, por exemplo, ainda está vulnerável.
Proteção temporária enquanto não atualiza
Estas medidas reduzem o risco, mas não substituem a atualização, que é a única correção completa:
- Desativar a opção
session.upload_progressdo PHP e reiniciar os processos do PHP. - Revisar os limites
memory_limitepost_max_size. - Ativar regras de firewall de aplicação (WAF) contra a PHP2Shell. Provedores como Cloudflare, Fastly, Google e Vercel publicaram regras para os vetores de ataque conhecidos.
Sinais de que o site pode ter sido atacado
- Requisições de envio de arquivo (multipart) seguidas de erros de limite de memória nos logs.
- Erros HTTP 500 repetidos sem explicação.
- Cookies de sessão
PHPSESSIDmuito grandes ou malformados. - Processos do PHP reiniciando com frequência sem motivo aparente.
Se encontrar algum desses sinais, além de atualizar o PHP, troque as senhas, tokens e chaves de API que o site usa, porque podem ter sido lidos da memória.
Perguntas frequentes
Atualizei o WordPress e os plugins. Estou protegido?
Não necessariamente. A falha está no PHP do servidor, não no WordPress. É preciso atualizar o próprio PHP para uma versão corrigida.
Minha hospedagem compartilhada não resolve sozinha?
Depende do provedor e da versão escolhida no painel. Se o site está numa versão antiga do PHP, nenhuma correção chega até ele. Vale conferir a versão e perguntar ao suporte da hospedagem.
Posso só trocar a versão no painel da hospedagem?
Dentro da mesma linha (de 8.3.20 para 8.3.36, por exemplo), quase sempre sim. Saindo do PHP 7 ou do 8.1, funções removidas e mudanças de comportamento costumam quebrar partes do site, então vale testar numa cópia antes.
Prefere que a gente cuide disso?
Verificamos a versão e a configuração do seu servidor, aplicamos a proteção imediata e fazemos a atualização sem tirar o site do ar. Retornamos em até 48 horas úteis.
Pedir verificação do meu site