Existe correção do PHP2Shell para PHP em fim de suporte?
Não como versão nova. O boletim do PHP diz que o PHP 8.1 e anteriores não recebem mais atualizações do projeto PHP, que algumas distribuições e fornecedores de suporte estendido (LTS) oferecem correções com backport, e que você deve consultar seu fornecedor ou atualizar para uma versão com suporte.
O boletim continua: diante da gravidade dessas vulnerabilidades, a equipe de segurança do PHP disponibilizou backports mínimos de código-fonte para o PHP 7.4, o PHP 8.0 e o PHP 8.1, para ajudar quem compila a partir do código-fonte ou não tem acesso a um fornecedor LTS.
Ou seja, são três coisas diferentes, que não devem ser confundidas:
| Opção | Existe para 7.4 / 8.0 / 8.1? | Para quem é |
|---|---|---|
| Nova versão oficial do PHP com a correção | Não | — |
| Patch mínimo oficial de código-fonte | Sim | Quem compila o PHP a partir do código-fonte |
| Pacote de distribuição ou de fornecedor LTS | Alguns fornecedores (por exemplo, o pacote php8.1 do Ubuntu 22.04 está corrigido) | Servidores que usam os pacotes desse fornecedor |
Quais versões do PHP estão em fim de suporte?
Os ramos com suporte que recebem a correção do PHP2Shell são o 8.2, o 8.3, o 8.4 e o 8.5:
| Ramo | Primeira versão corrigida |
|---|---|
| PHP 8.2 | 8.2.35 |
| PHP 8.3 | 8.3.36 |
| PHP 8.4 | 8.4.27 |
| PHP 8.5 | 8.5.12 |
| 8.1 e anteriores | Sem versão nova; patches oficiais de código-fonte para 7.4, 8.0 e 8.1 |
O PHP 8.1, o 8.0, o 7.4 e tudo o que é mais antigo estão em fim de suporte. O anúncio do PHP também lembra que o PHP 8.2 chega ao fim do suporte em 31 de dezembro de 2026, então migrar para o 8.2 resolve por pouco tempo. A pesquisa original afirma que pelo menos uma das falhas do PHP2Shell vem desde o PHP 5.4.
Estou no PHP 7.4. O que devo fazer?
- Descubra de onde vem o seu PHP. Se é o seu provedor de hospedagem ou a sua distribuição Linux que o fornece, pergunte a eles ou consulte o aviso de segurança deles em busca de um pacote com backport.
- Se você mesmo compila o PHP, aplique o patch oficial de código-fonte do seu ramo, recompile, faça o deploy e reinicie todos os processos (workers) do PHP. Guarde um registro do patch e do build.
- Planeje a migração para um ramo com suporte (8.3 ou mais novo). Esse é o único caminho que continua recebendo correções de segurança.
E se eu estiver no PHP 7.3 ou anterior?
Não existe patch oficial do PHP2Shell para o PHP 7.3 ou anterior: os patches de código-fonte do PHP cobrem só o 7.4, o 8.0 e o 8.1. A menos que o seu fornecedor distribua um pacote corrigido para a sua versão, a única correção é migrar para um ramo com suporte. Se não for possível fazer isso logo, considere tirar o site do ar ou restringir o acesso a ele, como várias agências nacionais recomendam para sistemas que não podem ser atualizados.
Um número de versão como 7.4.33 prova que estou vulnerável?
Sozinho, não. O pacote de um fornecedor com backport ou um build próprio com o patch mantém o número 7.4 e mesmo assim contém a correção. Quando você informa que o PHP veio de um pacote do sistema operacional ou foi compilado a partir do código-fonte, o verificador de versão do PHP pede que você confira o patch do seu fornecedor, em vez de marcar a versão como afetada. Um build 7.4 original, sem patch, está afetado.
Atualizar do PHP 7.4 para o 8.3 vai quebrar meu site?
Pode quebrar. Saltos de versão principal removem funções antigas e mudam comportamentos, o que afeta plugins, temas e código personalizado antigos. Faça um backup completo, teste numa cópia de homologação (staging), atualize primeiro a aplicação e os plugins e, depois da troca, confira login, formulários, pagamentos e tarefas agendadas. Para WordPress, veja o guia de versão do PHP no WordPress.
Posso baixar aqui um instalador do patch do PHP2Shell?
Não. Use os downloads oficiais de código-fonte e os branches de backport indicados no anúncio do PHP. A forma de aplicá-los depende do seu build, das extensões e do deploy, então não existe um instalador universal. Se preferir não compilar o PHP por conta própria, use um pacote de fornecedor ou migre para uma versão com suporte.
Como provo que um build próprio do PHP está corrigido?
Registre a revisão do código-fonte, o branch de backport aplicado, a data do build e onde ele foi implantado. Depois confirme que o site realmente roda o novo build após reiniciar os workers; o php -v na linha de comando pode continuar apontando para outro binário. Veja o guia para ver a versão do PHP e volte ao verificador PHP2Shell para a visão geral.
Quais fontes embasam esta página?
- The PHP Group: boletim de segurança
- The PHP Group: versões com suporte
- The PHP Group: downloads
- Manual do PHP: instalação em sistemas Unix
- Wiz Research: pesquisa original
- Canonical: aviso de segurança do Ubuntu
Verifique se o seu PHP é afetado pelo PHP2Shell
Informe a versão que o seu site mostra. Comparamos com a primeira versão corrigida do mesmo ramo e dizemos o que fazer em seguida.
Verificador PHP2Shell →Fontes
Os fatos centrais desta página (versões corrigidas, detalhes dos CVEs, pacotes das distribuições e alertas de órgãos oficiais) vêm de fontes oficiais. Pesquisas, notícias e posts da comunidade estão identificados como tal.
- Security advisory: Critical remote code execution vulnerabilities, update nowOficial The PHP Group
- Supported VersionsOficial The PHP Group
- Downloads & Installation InstructionsOficial The PHP Group
- Installation on Unix systemsOficial The PHP Group
- PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the InternetPesquisa Wiz Research
- USN-8948-1: PHP vulnerabilitiesFornecedor Canonical