Uma nova vulnerabilidade de execução remota de código (RCE) no PHP para Windows foi divulgada, afetando todas as versões desde a 5.x. Esta falha impacta um grande número de servidores ao redor do mundo.
PHP é uma linguagem de script de código aberto muito utilizada, projetada para desenvolvimento web, e comumente usada em servidores Windows e Linux.
A nova falha RCE, identificada como CVE-2024-4577, foi descoberta pelo pesquisador de segurança da Devcore, Orange Tsai, em 7 de maio de 2024, e imediatamente relatada aos desenvolvedores do PHP. Os mantenedores do projeto PHP lançaram um patch para corrigir a vulnerabilidade. No entanto, aplicar atualizações de segurança em projetos com implantação em larga escala é complicado, o que pode deixar muitos sistemas vulneráveis por períodos prolongados.
Quando uma vulnerabilidade crítica é divulgada, hackers começam a buscar sistemas vulneráveis. Este é o caso da CVE-2024-4577, já que a Shadowserver Foundation já detectou vários endereços IP procurando por servidores vulneráveis.
A falha CVE-2024-4577 é causada por um problema no tratamento de conversões de codificação de caracteres, especificamente o recurso ‘Best-Fit’ no Windows quando o PHP é usado no modo CGI.
Segundo um comunicado da Devcore, "Ao implementar o PHP, a equipe não percebeu o recurso Best-Fit de conversão de codificação no sistema operacional Windows, permitindo que invasores não autenticados contornem a proteção anterior do CVE-2012-1823 através de sequências de caracteres específicas. Código arbitrário pode ser executado em servidores PHP remotos por meio de ataque de "argument injection."
Esta vulnerabilidade ignora proteções anteriores implementadas para o CVE-2012-1823, explorado em ataques de malware anos após sua correção. Mesmo que o PHP não esteja configurado no modo CGI, o CVE-2024-4577 ainda pode ser explorado se os executáveis do PHP (por exemplo, php.exe ou php-cgi.exe) estiverem em diretórios acessíveis pelo servidor web.
A configuração padrão do XAMPP para Windows torna todas as suas instalações vulneráveis. O problema é mais grave em locais que usam caracteres de codificação mais suscetíveis, incluindo chinês tradicional, chinês simplificado e japonês.
Para mitigar esta vulnerabilidade, usuários de versões antigas do PHP (8.0, 7.x, 5.x) devem atualizar para versões mais recentes ou aplicar as seguintes mitigações:
Usuários de PHP suportado: Atualizem para as versões que incorporam os patches: PHP 8.3.8, PHP 8.2.20 e PHP 8.1.29.
Usuários de versões EoL ou que não podem atualizar imediatamente: Apliquem uma regra mod_rewrite para bloquear ataques:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? – [F,L]
Se você usa XAMPP e não precisa do recurso PHP CGI, comente a diretiva 'ScriptAlias' no arquivo de configuração do Apache (geralmente em 'C:/xampp/apache/conf/extra/httpd-xampp.conf').
Admins podem verificar o uso do PHP-CGI com a função phpinfo() e o valor 'Server API' na saída.
A Devcore sugere que os administradores de sistema considerem migrar do CGI para alternativas mais seguras, como FastCGI, PHP-FPM e Mod-PHP, para reduzir os riscos de futuras vulnerabilidades semelhantes.
Via - BC
Comments