O que é o php2shell-checker da OpenAI?
O php2shell-checker é uma ferramenta de código aberto que a OpenAI publicou em 21 de outubro de 2026, sob a licença Apache 2.0, junto com a divulgação coordenada do PHP2Shell (CVE-2026-109618 e CVE-2026-109619). É um script curto em Node.js com dois modos:
- Modo URL: envia uma requisição HEAD a um site e procura a versão do PHP nos cabeçalhos
X-Powered-ByeServer. Só recorre a GET se o HEAD for recusado, não segue redirecionamentos e não lê a página. - Modo local: roda
php -vna máquina e lê a versão.
Depois, compara a versão com uma tabela embutida da última versão vulnerável de cada ramo, do 5.4 ao 8.5. A ferramenta não envia tráfego de ataque: as próprias instruções da OpenAI pedem para não rodar sondagens de exploração.
Como rodo o checker da OpenAI?
Você precisa do Node.js e de uma cópia do repositório no GitHub. Na pasta do repositório:
- No seu servidor, para verificar o PHP da linha de comando:
node phpcheck.js --local - No seu próprio site:
node phpcheck.js "https://your-site.example" - Para saída legível por máquina, acrescente
--json.
Rode o modo URL apenas em sites que você possui ou administra. O PHP de linha de comando que o --local verifica pode ser diferente do PHP que serve o seu site, então confira também o que o próprio site informa; no WordPress, por exemplo, em Ferramentas → Saúde do site → Informações → Servidor (em inglês, Tools → Site Health → Info → Server).
O que significam OK, VULNERABLE e UNKNOWN?
| Resultado | Código de saída | O que a ferramenta quer dizer | O que fazer |
|---|---|---|---|
OK | 0 | A versão está acima da última versão vulnerável do ramo | Confirme que é a versão que o seu site roda e que o PHP foi reiniciado |
VULNERABLE | 1 | A versão é igual ou anterior à última versão vulnerável | Atualize o PHP, a menos que o seu fornecedor tenha feito backport da correção (veja abaixo) |
UNKNOWN | 3 | Nenhuma versão encontrada, o ramo não está na lista ou é uma versão de pré-lançamento | Confira a versão no painel de controle ou no servidor |
UNKNOWN não significa que o seu site está seguro. A maioria dos servidores bem configurados esconde a versão do PHP nos cabeçalhos, então o modo URL muitas vezes retorna UNKNOWN.
Onde o checker da OpenAI pode errar?
Ele compara apenas números de versão, e a OpenAI deixa isso claro: um OK não verifica de forma independente uma correção de segurança. Na prática, três casos importam:
- Backports das distribuições: Ubuntu, Debian, Red Hat e outras corrigem pacotes do PHP com números mais antigos. Um
8.3.6-0ubuntu0.24.04.13corrigido continua aparecendo como VULNERABLE. Veja atualizar o PHP no Ubuntu e no Debian. - Números de build de painéis e fornecedores: em ramos antigos, qualquer número acima do corte aparece como OK, inclusive números que o PHP nunca lançou. O 宝塔 e o aaPanel distribuem builds corrigidos como 7.4.34 e 8.1.35, mas 8.0.27 é ao mesmo tempo um build do 宝塔 e uma versão antiga sem correção.
- Cabeçalhos: um proxy ou CDN pode esconder ou reescrever o
X-Powered-By, e um mesmo servidor pode hospedar vários sites com versões diferentes do PHP.
Como combino a ferramenta com o verificador PHP2Shell?
Cole a saída da ferramenta direto no campo de versão do verificador PHP2Shell. Ele aceita a saída --json, uma linha como OK: PHP 8.3.36, a saída do php -v ou um cabeçalho X-Powered-By: PHP/8.3.36, e extrai a versão. Depois escolha de onde vem o seu PHP, como um pacote do sistema operacional, 宝塔 / aaPanel ou outro painel de controle. Assim o verificador leva em conta backports e builds de painel que uma comparação só de versão deixa passar. A verificação roda no seu navegador e nada do que você cola é enviado a lugar nenhum.
As versões corrigidas são:
| 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 |
Se o resultado disser que você está afetado, siga o guia de correção do PHP2Shell para o seu ambiente. Depois de atualizar, procure sinais de uma invasão anterior com o checklist de invasão.
O php2shell.help pode fazer essa verificação na minha URL por mim?
Sim. O campo de URL do verificador PHP2Shell lê os cabeçalhos do seu site com a mesma lógica e depois avalia a versão com as regras deste site. Rodar a ferramenta por conta própria é útil no servidor, onde o --local lê o php -v.
O checker da OpenAI diz OK. Meu site está protegido contra o PHP2Shell?
Não necessariamente. OK significa apenas que a versão anunciada está acima da última versão vulnerável do ramo; a ferramenta não verifica a correção em si, e os cabeçalhos podem ser alterados. Confirme a versão que o seu site realmente roda e se todos os workers do PHP foram reiniciados.
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.
- php2shell-checker: check a website or local PHP binary for php2shellPesquisa OpenAI (GitHub)
- Security advisory: Critical remote code execution vulnerabilities, update nowOficial The PHP Group
- RCE via OOM corruptionOficial The PHP Group
- RCE via stale global stateOficial The PHP Group
- Site Health screenOficial WordPress.org