php-checker

Seu PHP está vulnerável à PHP2Shell?

CVSS 9.2 · RCE sem auth CVE-2026-109618 CVE-2026-109619 divulgada em 21/10/2026

Informe a URL do seu site. De uma requisição (cabeçalhos + certificado TLS), a ferramenta tira a versão do PHP e seu risco, o servidor web, WAF/CDN na frente, cabeçalhos de segurança, flags de cookie e dados do certificado. Não envia ataque e não testa arquivos — leitura passiva, nada roda no seu servidor.

⚠️ Verifique apenas sites que você controla. Se o site esconde a versão (boa prática, comum atrás de CDN), use o modo definitivo abaixo.

A versão autoritativa é a do php -v no servidor; a detecção por cabeçalho é triagem.

🔒 Modo definitivo — conferir no seu servidor

Para sites atrás de CDN (quando o resultado acima fica "inconclusivo"), a detecção remota não vê a versão. Rode este comando no seu servidor (não instala nada) e cole a saída abaixo. É o único jeito conclusivo.

php -r 'echo "php-checker".PHP_EOL."version: ".PHP_VERSION.PHP_EOL;foreach(["expose_php","session.upload_progress.enabled","memory_limit","post_max_size","upload_max_filesize","fatal_error_backtraces"] as $k){echo "$k: ".ini_get($k).PHP_EOL;}'

A config do PHP da web (PHP-FPM) pode diferir da CLI. Para o valor exato da web, salve o mesmo código num phpcheck.php temporário no site, abra no navegador e apague em seguida.

🛠️ Como corrigir a PHP2Shell

A única correção completa é atualizar o PHP para a versão corrigida do seu ramo:

RamoVersão corrigida (ou superior)
PHP 8.58.5.12
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35
PHP 8.1 e anterioresFim de vida — sem patch oficial. Migre para 8.2+ ou use o pacote corrigido da distribuição.

Afeta PHP-FPM, mod_php, php-cgi, FrankenPHP e LiteSpeed. Inclua containers, staging e appliances de terceiros.

Atualização por distribuição

# Debian/Ubuntu
sudo apt update && sudo apt upgrade php* && sudo systemctl restart php*-fpm
# RHEL/Alma/Rocky
sudo dnf update php\* && sudo systemctl restart php-fpm
# Docker: troque a tag base por uma corrigida (ex. php:8.3.36-fpm) e reconstrua.

Mitigações temporárias (ponte até o patch)

CVE-2026-109618: memory_limit=-1 via php_admin_value; post_max_size 8M (ou 32M com uploads) com upload_max_filesize abaixo; limites de requisição no proxy; limite de cgroup que mate só o worker (não use RLIMIT_AS/RLIMIT_DATA).

CVE-2026-109619: session.upload_progress.enabled=0 (php.ini/pool/server, não ini_set()/.user.ini) + reiniciar workers; no 8.5 também fatal_error_backtraces=0; corrigir erros fatais alcançáveis por atacante. Esconder erro com @ não ajuda.

WAF

A Cloudflare publicou regras de WAF para vetores conhecidos (todos os planos). É paliativo e só protege se o servidor aceitar tráfego exclusivamente via Cloudflare.