Vulnerabilidades do PHP

CVE-2024-4577: a falha do PHP-CGI no Windows explicada

CVE-2024-4577, a falha do PHP-CGI no Windows

Em junho de 2024, uma falha crítica do PHP foi explorada menos de dois dias depois da publicação da correção. A CVE-2024-4577 afeta apenas uma configuração específica, o PHP em modo CGI em um servidor Windows, mas essa era a configuração padrão do XAMPP. Aqui você vai descobrir se os seus sites são afetados, o que aconteceu e o que verificar.

O que a falha permite

Segundo a ficha do NVD, a falha afeta o PHP 8.1 antes da 8.1.29, 8.2 antes da 8.2.20 e 8.3 antes da 8.3.8, quando o PHP roda em modo CGI atrás do Apache no Windows. Um visitante anônimo pode então passar opções de linha de comando para o binário do PHP, o que permite ler o código-fonte dos scripts ou executar código PHP arbitrário no servidor. A pontuação CVSS 3.1 é de 9,8 em 10, atribuída tanto pela equipe do PHP quanto pelo NIST.

O princípio cabe em uma frase: o Windows aplica uma conversão chamada “Best-Fit” a certos caracteres quando repassa uma linha de comando a um programa. Com as páginas de código 932 (japonês), 936 (chinês simplificado) e 950 (chinês tradicional), um caractere inofensivo é convertido em um simples hífen. O PHP-CGI o interpreta então como o início de uma opção. O aviso do PHP descreve esse comportamento como um bypass da CVE-2012-1823, uma falha de 2012 do mesmo modo CGI cuja proteção se baseava justamente na detecção desse hífen.

O pesquisador Orange Tsai (DEVCORE) a relatou em 7 de maio de 2024. As versões corrigidas foram publicadas em 6 de junho de 2024.

Quem é realmente afetado

A condição de exposição é restrita, o que é uma boa notícia para a maioria dos sites WordPress. O aviso da DEVCORE descreve dois cenários:

  • Apache configurado para repassar os arquivos PHP ao executável php-cgi (diretiva Action);
  • um executável php-cgi.exe ou php.exe exposto em um diretório CGI, por exemplo via ScriptAlias. Essa era a configuração padrão do XAMPP para Windows, muito usado para desenvolver sites WordPress localmente.

A DEVCORE confirmou a execução direta de código em sistemas configurados em chinês tradicional, chinês simplificado e japonês. Para os demais idiomas (inglês, coreano, idiomas da Europa Ocidental), o aviso diz que ainda não é possível enumerar todos os cenários e recomenda a atualização em todos os casos. Um servidor Windows em francês ou em português, portanto, não deve ser considerado seguro por princípio.

Árvore de decisão: servidor Windows, PHP em modo CGI, versão não corrigida; se as três respostas forem sim, o site está exposto
Três perguntas para saber se um servidor é afetado.
ConfiguraçãoExposto à CVE-2024-4577?Comentário
Hospedagem compartilhada Linux (Apache, LiteSpeed, Nginx)NãoA falha depende de uma conversão própria do Windows
VPS Linux com PHP-FPMNãoIdem
Servidor Windows, PHP como módulo ou via FastCGINão, segundo o avisoA DEVCORE inclusive recomenda migrar para mod_php, FastCGI ou PHP-FPM
Servidor Windows, Apache + PHP-CGISim, se a versão não estiver corrigidaCaso principal descrito pela DEVCORE
XAMPP para Windows (instalação padrão)Sim, se a versão não estiver corrigidaParticularmente arriscado se a máquina for acessível pela internet
Exposição conforme a hospedagem

Os ramos PHP 8.0, 7 e 5 também são afetados, mas não recebem mais manutenção: não existe versão corrigida para eles. A DEVCORE propôs regras temporárias de reescrita do Apache para esses casos, ressaltando que elas cobrem apenas as três páginas de código confirmadas.

Uma exploração muito rápida

A cronologia mostra a velocidade com que uma falha publicada vira arma.

Linha do tempo de maio de 2024 a janeiro de 2025: relato, correção, primeiros ataques, catálogo da CISA, correção do bypass, campanhas de 2025
Menos de 48 horas entre a correção e os primeiros ataques.
  • 8 de junho de 2024: a Imperva observa os primeiros ataques, usados para distribuir o ransomware TellYouThePass.
  • 12 de junho de 2024: a CISA adiciona a falha ao seu catálogo de vulnerabilidades ativamente exploradas (KEV).
  • Julho de 2024: a Akamai relata tentativas em seus honeypots nas 24 horas seguintes à divulgação, com várias famílias de malware (trojan de acesso remoto, minerador de criptomoeda).
  • 26 de setembro de 2024: o PHP 8.3.12, 8.2.24 e 8.1.30 corrigem a CVE-2024-8926, um bypass da primeira correção possível com certas configurações não padrão das páginas de código do Windows.
  • Início de 2025: a Cisco Talos descreve uma campanha contra organizações japonesas (tecnologia, telecomunicações, entretenimento, educação, comércio eletrônico) que usa a CVE-2024-4577 como porta de entrada. A GreyNoise contabiliza 1.089 endereços IP diferentes tentando a exploração somente em janeiro de 2025, muito além do Japão.

Seis meses depois da correção, a falha ainda era ativamente procurada. É o padrão habitual: os robôs continuam varrendo a internet enquanto houver servidores sem correção respondendo.

Ramo do PHPCorrige a CVE-2024-4577Corrige também a CVE-2024-8926Situação em outubro de 2026
8.38.3.88.3.12Com manutenção (correções de segurança até 31 de dezembro de 2027)
8.28.2.208.2.24Com manutenção até 31 de dezembro de 2026
8.18.1.298.1.30Fim de vida desde 31 de dezembro de 2025
8.0 e anterioresNenhuma correçãoNenhuma correçãoFim de vida
Versões a instalar

Não mire apenas na versão mínima que corrige esta falha: instale a versão mais recente do seu ramo. Em outubro de 2026, o PHP ainda publicou correções críticas (8.5.12, 8.4.27, 8.3.36 e 8.2.35) para outras duas falhas de execução de código que, estas sim, afetam todos os modos de execução. Nós as detalhamos no nosso artigo sobre as versões do PHP em fim de vida.

As verificações a fazer

Em um site WordPress em produção

No Painel, abra Ferramentas, Saúde do site, aba Informações e depois a seção Servidor. Lá você encontra a arquitetura do servidor (Windows ou Linux), o servidor web, a versão do PHP e o SAPI do PHP, ou seja, a forma como o PHP é executado. No Linux, qualquer que seja o SAPI, o site não é afetado. No Windows, o SAPI cgi-fcgi sozinho não permite distinguir o CGI clássico do FastCGI: pergunte à sua hospedagem ou ao seu administrador como o PHP é chamado e, de qualquer forma, atualize o PHP.

Na sua máquina de desenvolvimento

  • Atualize o XAMPP ou substitua a versão do PHP dele por uma versão corrigida.
  • Se você não precisa do modo CGI, a DEVCORE orienta comentar a linha ScriptAlias /php-cgi/ em httpd-xampp.conf.
  • Verifique se o Apache não está escutando em todas as interfaces de rede e se o firewall do Windows não o expõe: um ambiente local nunca deveria ser acessível pela internet.

Se um servidor ficou exposto sem correção

Atualizar o PHP fecha a porta, mas não remove o que pode ter sido deixado antes. As campanhas descritas pela Talos instalavam ferramentas de persistência (tarefas agendadas, serviços, chaves de registro). Trate a máquina como potencialmente comprometida: procure arquivos PHP desconhecidos, contas de administrador adicionadas, tarefas agendadas suspeitas e troque as senhas e as chaves do wp-config.php.

Com o WP Masquerade

Nenhum plugin do WordPress corrige uma falha do PHP: a única resposta é atualizar o servidor. Ainda assim, o WP Masquerade pode ajudar você a enxergar e verificar. As armadilhas para robôs contam as requisições que procuram caminhos inexistentes no seu site, úteis para medir a varredura automática. Na versão Pro, a verificação de integridade compara os arquivos do núcleo com as somas de verificação oficiais do wordpress.org e os alertas por e-mail avisam sobre um arquivo modificado ou adicionado, o que ajuda depois de uma exposição.

Palestra na Black Hat Europe 2024 (em inglês) de Orange Tsai e Splitline Huang (DEVCORE) sobre as conversões “Best-Fit” do Windows, o mecanismo explorado pela CVE-2024-4577.

Para lembrar

  • A CVE-2024-4577 afeta o PHP em modo CGI no Windows, especialmente o XAMPP na configuração padrão: as hospedagens Linux não são afetadas.
  • Versões corrigidas: 8.3.8, 8.2.20 e 8.1.29, e depois 8.3.12, 8.2.24 e 8.1.30 para o bypass CVE-2024-8926.
  • Exploração observada desde 8 de junho de 2024, ainda ativa em 2025.
  • O PHP 8.0 e anteriores não têm nenhuma correção: a única solução é migrar.
  • Depois de uma exposição, atualizar não basta: procure sinais de comprometimento.

Fontes

Outras fontes consultadas: documentação oficial e publicações de pesquisadores de segurança.

Vulnerabilidades do PHP6 min

CVE-2024-2961: a falha glibc iconv que mira o PHP

Uma falha de 24 anos na glibc permite transformar uma leitura de arquivo PHP em execução de código. Mecanismo, versões afetadas, verificação e correção.

Segurança WordPress, sem ruído

Um e-mail quando importa: novos ataques observados, atualizações do plugin e guias práticos. Sem spam, cancelamento com um clique.

Comece de graça e mude para o Pro quando estiver pronto

A versão gratuita já oculta o WordPress e muda o endereço da página de login. O Pro acrescenta aliases, verificação em duas etapas e monitoramento.